Classe match_results
Contém uma sequência de subcorrespondências.
Sintaxe
template <class BidIt, class Alloc>
class match_results
Parâmetros
BidIt
O tipo de iterador para subcorrespondências.
Alloc
O tipo de um distribuidor para gerenciar o armazenamento.
Comentários
O modelo de classe descreve um objeto que controla uma sequência de elementos não modificáveis do tipo sub_match<BidIt>
gerada por uma pesquisa de expressão regular. Cada elemento aponta para a subsequência que corresponde ao grupo de captura correspondente a esse elemento.
Construtores
Construtor | Descrição |
---|---|
match_results | Constrói o objeto . |
Typedefs
Nome do tipo | Descrição |
---|---|
allocator_type | O tipo de um distribuidor para gerenciar o armazenamento. |
char_type | O tipo de um elemento. |
const_iterator | O tipo de iterador const para subcorrespondências. |
const_reference | O tipo de uma referência de elemento const. |
difference_type | O tipo de uma diferença de iterador. |
iterator | O tipo de iterador para subcorrespondências. |
referência | O tipo de uma referência de elemento. |
size_type | O tipo de uma contagem de subcorrespondência. |
string_type | O tipo de uma cadeia de caracteres. |
value_type | O tipo de uma subcorrespondência. |
Funções de membro
Função de membro | Descrição |
---|---|
begin | Designa o início da sequência de subcorrespondência. |
empty | Testa para não haver subcorrespondências. |
end | Designa o fim da sequência de subcorrespondências. |
format | Formata subcorrespondências. |
get_allocator | Retorna o alocador armazenado. |
length | Retorna o comprimento de uma subcorrespondência. |
max_size | Obtém o maior número de subcorrespondências. |
position | Iniciar o deslocamento de um subgrupo. |
prefixo | Obtém a sequência antes da primeira subcorrespondência. |
size | Número de contagens de subcorrespondências. |
str | Retorna uma subcorrespondência. |
suffix | Obtém a sequência após a última subcorrespondência. |
troca | Troca dois objetos match_results. |
Operadores
Operador | Descrição |
---|---|
operator= | Copiar um objeto match_results. |
operador | Acessar um sub-objeto. |
Requisitos
Cabeçalho:<regex>
Namespace: std
Exemplo
// std__regex__match_results.cpp
// compile with: /EHsc
#include <regex>
#include <iostream>
int main()
{
std::regex rx("c(a*)|(b)");
std::cmatch mr;
std::regex_search("xcaaay", mr, rx);
std::cout << "prefix: matched == " << std::boolalpha
<< mr.prefix().matched
<< ", value == " << mr.prefix() << std::endl;
std::cout << "whole match: " << mr.length() << " chars, value == "
<< mr.str() << std::endl;
std::cout << "suffix: matched == " << std::boolalpha
<< mr.suffix().matched
<< ", value == " << mr.suffix() << std::endl;
std::cout << std::endl;
std::string fmt("\"c(a*)|(b)\" matched \"$&\"\n"
"\"(a*)\" matched \"$1\"\n"
"\"(b)\" matched \"$2\"\n");
std::cout << mr.format(fmt) << std::endl;
std::cout << std::endl;
// index through submatches
for (size_t n = 0; n < mr.size(); ++n)
{
std::cout << "submatch[" << n << "]: matched == " << std::boolalpha
<< mr[n].matched <<
" at position " << mr.position(n) << std::endl;
std::cout << " " << mr.length(n)
<< " chars, value == " << mr[n] << std::endl;
}
std::cout << std::endl;
// iterate through submatches
for (std::cmatch::iterator it = mr.begin(); it != mr.end(); ++it)
{
std::cout << "next submatch: matched == " << std::boolalpha
<< it->matched << std::endl;
std::cout << " " << it->length()
<< " chars, value == " << *it << std::endl;
}
std::cout << std::endl;
// other members
std::cout << "empty == " << std::boolalpha << mr.empty() << std::endl;
std::cmatch::allocator_type al = mr.get_allocator();
std::cmatch::string_type str = std::string("x");
std::cmatch::size_type maxsiz = mr.max_size();
std::cmatch::char_type ch = 'x';
std::cmatch::difference_type dif = mr.begin() - mr.end();
std::cmatch::const_iterator cit = mr.begin();
std::cmatch::value_type val = *cit;
std::cmatch::const_reference cref = val;
std::cmatch::reference ref = val;
maxsiz = maxsiz; // to quiet "unused" warnings
if (ref == cref)
ch = ch;
dif = dif;
return (0);
}
prefix: matched == true, value == x
whole match: 4 chars, value == caaa
suffix: matched == true, value == y
"c(a*)|(b)" matched "caaa"
"(a*)" matched "aaa"
"(b)" matched ""
submatch[0]: matched == true at position 1
4 chars, value == caaa
submatch[1]: matched == true at position 2
3 chars, value == aaa
submatch[2]: matched == false at position 6
0 chars, value ==
next submatch: matched == true
4 chars, value == caaa
next submatch: matched == true
3 chars, value == aaa
next submatch: matched == false
0 chars, value ==
empty == false
match_results::allocator_type
O tipo de um distribuidor para gerenciar o armazenamento.
typedef Alloc allocator_type;
Comentários
O typedef é um sinônimo do argumento de modelo Alloc.
match_results::começar
Designa o início da sequência de subcorrespondência.
const_iterator begin() const;
Comentários
A função de membro retorna um iterador de acesso aleatório que aponta para o primeiro elemento da sequência (ou um pouco além do final de uma sequência vazia).
match_results::char_type
O tipo de um elemento.
typedef typename iterator_traits<BidIt>::value_type char_type;
Comentários
O typedef é um sinônimo para o tipo iterator_traits<BidIt>::value_type
, que é o tipo de elemento da sequência de caracteres que foi pesquisada.
match_results::const_iterator
O tipo de iterador const para subcorrespondências.
typedef T0 const_iterator;
Comentários
O typedef descreve um objeto que pode servir como um iterador de acesso aleatório constante para a sequência controlada.
match_results::const_reference
O tipo de uma referência de elemento const.
typedef const typename Alloc::const_reference const_reference;
Comentários
O typedef descreve um objeto que pode servir como uma referência constante para um elemento da sequência controlada.
match_results::d tipo_de_frequência
O tipo de uma diferença de iterador.
typedef typename iterator_traits<BidIt>::difference_type difference_type;
Comentários
O typedef é um sinônimo para o tipo iterator_traits<BidIt>::difference_type
; ele descreve um objeto que pode representar a diferença entre quaisquer dois iteradores que apontem para os elementos da sequência controlada.
match_results::vazio
Testa para não haver subcorrespondências.
bool empty() const;
Comentários
A função de membro retornará true somente se a pesquisa de expressão regular falhar.
match_results::fim
Designa o fim da sequência de subcorrespondências.
const_iterator end() const;
Comentários
A função de membro retorna um iterador que aponta para ou um pouco além do final da sequência.
match_results::format
Formata subcorrespondências.
template <class OutIt>
OutIt format(OutIt out,
const string_type& fmt, match_flag_type flags = format_default) const;
string_type format(const string_type& fmt, match_flag_type flags = format_default) const;
Parâmetros
OutIt
O tipo de iterador de saída.
out
O fluxo de saída no qual gravar.
fmt
A cadeia de caracteres do formato.
sinalizadores
Os sinalizadores de formato.
Comentários
Cada função membro gera texto formatado no controle do formato fmt. A primeira função membro grava o texto formatado na sequência definida pelo argumento out dela e retorna out. A segunda função membro retorna um objeto de cadeia de caracteres que contém uma cópia do texto formatado.
Para gerar texto formatado. o texto literal na cadeia de caracteres de formato é copiado normalmente para a sequência de destino. Cada sequência de escape na cadeia de caracteres de formato é substituída pelo texto que ela representa. Os detalhes da cópia e da substituição são controlados pelos sinalizadores de formato transmitidos à função.
match_results::get_allocator
Retorna o alocador armazenado.
allocator_type get_allocator() const;
Comentários
A função de membro retorna uma cópia do objeto alocador usado por *this
para alocar seus objetos sub_match
.
match_results::iterador
O tipo de iterador para subcorrespondências.
typedef const_iterator iterator;
Comentários
O tipo descreve um objeto que pode servir como um iterador de acesso aleatório para a sequência controlada.
match_results::comprimento
Retorna o comprimento de uma subcorrespondência.
difference_type length(size_type sub = 0) const;
Parâmetros
sub
O índice da subcorrespondência.
Comentários
A função membro retorna (*this)[sub].length()
.
match_results::match_results
Constrói o objeto .
explicit match_results(const Alloc& alloc = Alloc());
match_results(const match_results& right);
Parâmetros
alloc
O objeto de alocador a ser armazenado.
direita
O objeto match_results a ser copiado.
Comentários
O primeiro construtor cria um objeto match_results
que não mantém nenhuma subcorrespondência. O segundo construtor cria um objeto match_results
que é uma cópia de right.
match_results::max_size
Obtém o maior número de subcorrespondências.
size_type max_size() const;
Comentários
A função membro retorna o comprimento da sequência mais longa que o objeto pode controlar.
match_results::operador=
Copiar um objeto match_results.
match_results& operator=(const match_results& right);
Parâmetros
direita
O objeto match_results a ser copiado.
Comentários
O operador membro substitui a sequência controlada por *this
por uma cópia da sequência controlada por right.
match_results::operador
Acessar um sub-objeto.
const_reference operator[](size_type n) const;
Parâmetros
n
Índice da subcorrespondência.
Comentários
A função membro retornará uma referência ao elemento n da sequência controlada ou uma referência a um objeto sub_match
vazio se o size() <= n
ou o grupo de captura n não fizer parte da correspondência.
match_results::p osition
Iniciar o deslocamento de um subgrupo.
difference_type position(size_type sub = 0) const;
Parâmetros
sub
Índice da subcorrespondência.
Comentários
A função de membro retorna std::distance(prefix().first, (*this)[sub].first)
, ou seja, a distância entre o primeiro caractere na sequência de destino e o primeiro caractere da subcorrespondência apontada pelo elemento n
da sequência controlada.
match_results::p refix
Obtém a sequência antes da primeira subcorrespondência.
const_reference prefix() const;
Comentários
A função de membro retorna uma referência a um objeto do tipo sub_match<BidIt>
que aponta para a sequência de caracteres que começa no início da sequência de destino e termina em (*this)[0].first
, ou seja, ela aponta para o texto que precede a subsequência correspondente.
match_results::referência
O tipo de uma referência de elemento.
typedef const_reference reference;
Comentários
O tipo é um sinônimo para o tipo const_reference
.
match_results::tamanho
Número de contagens de subcorrespondências.
size_type size() const;
Comentários
O membro da função retornará um número maior que o de grupos de captura na expressão regular que foi usada para a pesquisa ou zero, se nenhuma pesquisa tiver sido feita.
match_results::size_type
O tipo de uma contagem de subcorrespondência.
typedef typename Alloc::size_type size_type;
Comentários
O tipo é um sinônimo para o tipo Alloc::size_type
.
match_results::str
Retorna uma subcorrespondência.
string_type str(size_type sub = 0) const;
Parâmetros
sub
Índice da subcorrespondência.
Comentários
A função membro retorna string_type((*this)[sub])
.
match_results::string_type
O tipo de uma cadeia de caracteres.
typedef basic_string<char_type> string_type;
Comentários
O tipo é um sinônimo para o tipo basic_string<char_type>
.
match_results::sufixo
Obtém a sequência após a última subcorrespondência.
const_reference suffix() const;
Comentários
A função de membro retorna uma referência a um objeto do tipo sub_match<BidIt>
, que aponta para a sequência de caracteres que começa em (*this)[size() - 1].second
e termina no final da sequência de destino, ou seja, ela aponta para o texto que segue a subsequência correspondente.
match_results::swap
Troca dois objetos match_results.
void swap(const match_results& right) throw();
Parâmetros
direita
O objeto match_results a ser trocado.
Comentários
A função membro alterna o conteúdo de *this
e right em tempo constante e não gera exceções.
match_results::value_type
O tipo de uma subcorrespondência.
typedef sub_match<BidIt> value_type;
Comentários
O typedef é um sinônimo para o tipo sub_match<BidIt>
.