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>.

Confira também

<regex>