Compartir vía


match_results (Clase)

Contiene una secuencia de subcoincidencias.

Sintaxis

template <class BidIt, class Alloc>
class match_results

Parámetros

BidIt
El tipo de iterador para subcoincidencias.

Alloc
El tipo de un asignador para administrar el almacenamiento.

Comentarios

La clase de plantilla describe un objeto que controla una secuencia no modificable del tipo sub_match<BidIt> generada por una búsqueda de expresión regular. Cada elemento apunta a la subsecuencia que coincide con el grupo de capturas que corresponde a ese elemento.

Constructores

Constructor Descripción
match_results Este constructor se usa para construir el objeto .

Typedefs

Nombre de tipo Descripción
allocator_type El tipo de un asignador para administrar el almacenamiento.
char_type El tipo de un elemento.
const_iterator El tipo de iterador constante para subcoincidencias.
const_reference Tipo de una referencia const a un elemento.
difference_type El tipo de diferencia de un iterador.
iterator El tipo de iterador para subcoincidencias.
referencia El tipo de una referencia a un elemento.
size_type El tipo de recuento de subcoincidencias.
string_type El tipo de una cadena.
value_type El tipo de una subcoincidencia.

Funciones miembro

Función de miembro Descripción
begin Indica el principio de la secuencia de subcoincidencia.
empty Comprueba que no haya subcoincidencias.
end Designa el final de la secuencia de subcoincidencia.
format Subcoincidencias de formato.
get_allocator Devuelve el asignador almacenado.
length Devuelve la longitud de una subcoincidencia.
max_size Obtiene el número máximo de subcoincidencias.
position Permite obtener el desplazamiento inicial de un subgrupo.
prefijo Obtiene la secuencia antes de la primera subcoincidencia.
size Número de recuentos de subcoincidencias.
str Devuelve una subcoincidencia.
suffix Obtiene la secuencia después de la última subcoincidencia.
swap Intercambia dos objetos match_results.

Operadores

Operador Descripción
operator= Copiar un objeto match_results.
operator[] Permite acceder a un subobjeto.

Requisitos

Encabezado:<regex>

Espacio de nombres: std

Ejemplo

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

El tipo de un asignador para administrar el almacenamiento.

typedef Alloc allocator_type;

Comentarios

La definición de tipo es un sinónimo del argumento de plantilla Alloc.

match_results::begin

Indica el principio de la secuencia de subcoincidencia.

const_iterator begin() const;

Comentarios

La función miembro devuelve un iterador de acceso aleatorio que apunta al primer elemento de la secuencia (o más allá del final de una secuencia vacía).

match_results::char_type

El tipo de un elemento.

typedef typename iterator_traits<BidIt>::value_type char_type;

Comentarios

La definición de tipo es un sinónimo del tipo iterator_traits<BidIt>::value_type, que es el tipo de elemento de la secuencia de caracteres que se busca.

match_results::const_iterator

El tipo de iterador constante para subcoincidencias.

typedef T0 const_iterator;

Comentarios

La definición de tipo describe un objeto que puede actuar como un iterador de acceso aleatorio para la secuencia controlada.

match_results::const_reference

Tipo de una referencia const a un elemento.

typedef const typename Alloc::const_reference const_reference;

Comentarios

La definición de tipo describe un objeto que puede actuar como referencia constante a un elemento de la secuencia controlada.

match_results::d ifference_type

El tipo de diferencia de un iterador.

typedef typename iterator_traits<BidIt>::difference_type difference_type;

Comentarios

La definición de tipo es un sinónimo del tipo iterator_traits<BidIt>::difference_type; describe un objeto que puede representar la diferencia entre dos iteradores que apuntan a elementos de la secuencia controlada.

match_results::empty

Comprueba que no haya subcoincidencias.

bool empty() const;

Comentarios

La función miembro devuelve true solo si hay error en la búsqueda de expresión regular.

match_results::end

Designa el final de la secuencia de subcoincidencia.

const_iterator end() const;

Comentarios

La función miembro devuelve un iterador que apunta inmediatamente después del final de la secuencia.

match_results::format

Subcoincidencias de formato.

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
Tipo de iterador de salida.

out
Flujo de salida donde se va a escribir.

fmt
Formato de cadena.

flags
Marcas de formato.

Comentarios

Cada función miembro genera texto con formato bajo el control del formato fmt. La primera función miembro escribe el texto con formato en la secuencia definida por su argumento out y devuelve out. La segunda función miembro devuelve un objeto de cadena que contiene una copia del texto con formato.

Para generar texto con formato El texto literal de la cadena de formato se copia normalmente en la secuencia de destino. Cada secuencia de escape de la cadena de formato se reemplaza por el texto que representa. Las marcas de formato pasadas a la función controlan los detalles de copiar y reemplazar.

match_results::get_allocator

Devuelve el asignador almacenado.

allocator_type get_allocator() const;

Comentarios

La función miembro devuelve una copia del objeto de asignador usado por *this para asignar sus objetos sub_match.

match_results::iterator

El tipo de iterador para subcoincidencias.

typedef const_iterator iterator;

Comentarios

El tipo describe un objeto que puede actuar como un iterador de acceso aleatorio de la secuencia controlada.

match_results::length

Devuelve la longitud de una subcoincidencia.

difference_type length(size_type sub = 0) const;

Parámetros

sub
El índice de la subcoincidencia.

Comentarios

La función miembro devuelve (*this)[sub].length().

match_results::match_results

Este constructor se usa para construir el objeto .

explicit match_results(const Alloc& alloc = Alloc());

match_results(const match_results& right);

Parámetros

alloc
Objeto de asignador que se va a almacenar.

right
Objeto match_results que se va a copiar.

Comentarios

El primer constructor construye un objeto match_results que no contiene subcoincidencias. El segundo constructor construye un objeto match_results que es una copia de right.

match_results::max_size

Obtiene el número máximo de subcoincidencias.

size_type max_size() const;

Comentarios

La función miembro devuelve la longitud de la secuencia más larga que puede controlar el objeto.

match_results::operator=

Copiar un objeto match_results.

match_results& operator=(const match_results& right);

Parámetros

right
Objeto match_results que se va a copiar.

Comentarios

El operador de miembro reemplaza la secuencia controlada mediante *this por una copia de la secuencia controlada mediante right.

match_results::operator[]

Permite acceder a un subobjeto.

const_reference operator[](size_type n) const;

Parámetros

n
Índice de la subcoincidencia.

Comentarios

La función miembro devuelve una referencia al elemento n de la secuencia controlada o una referencia a un objeto sub_match vacío si size() <= n o si el grupo de capturas n no formaba parte de la coincidencia.

match_results::p osition

Permite obtener el desplazamiento inicial de un subgrupo.

difference_type position(size_type sub = 0) const;

Parámetros

sub
Índice de la subcoincidencia.

Comentarios

La función miembro devuelve std::distance(prefix().first, (*this)[sub].first); es decir, la distancia desde el primer carácter de la secuencia de destino hasta el primer carácter de la subcoincidencia señalado por el elemento n de la secuencia controlada.

match_results::p refix

Obtiene la secuencia antes de la primera subcoincidencia.

const_reference prefix() const;

Comentarios

La función miembro devuelve una referencia a un objeto del tipo sub_match<BidIt> que apunta a la secuencia de caracteres que comienza en el inicio de la secuencia de destino y terminan en (*this)[0].first; es decir, señala el texto que precede a la subsecuencia coincidente.

match_results::reference

El tipo de una referencia a un elemento.

typedef const_reference reference;

Comentarios

El tipo es un sinónimo del tipo const_reference.

match_results::size

Número de recuentos de subcoincidencias.

size_type size() const;

Comentarios

La función miembro devuelve uno más que el número de grupos de captura en la expresión regular que se usó para la búsqueda o cero si no se hizo ninguna búsqueda.

match_results::size_type

El tipo de recuento de subcoincidencias.

typedef typename Alloc::size_type size_type;

Comentarios

El tipo es un sinónimo del tipo Alloc::size_type.

match_results::str

Devuelve una subcoincidencia.

string_type str(size_type sub = 0) const;

Parámetros

sub
Índice de la subcoincidencia.

Comentarios

La función miembro devuelve string_type((*this)[sub]).

match_results::string_type

El tipo de una cadena.

typedef basic_string<char_type> string_type;

Comentarios

El tipo es un sinónimo del tipo basic_string<char_type>.

match_results::sufijo

Obtiene la secuencia después de la última subcoincidencia.

const_reference suffix() const;

Comentarios

La función miembro devuelve una referencia a un objeto del tipo sub_match<BidIt> que apunta a la secuencia de caracteres que comienza en (*this)[size() - 1].second y termina al final de la secuencia de destino; es decir, señala el texto que sigue a la subsecuencia coincidente.

match_results::swap

Intercambia dos objetos match_results.

void swap(const match_results& right) throw();

Parámetros

right
El objeto match_results con el que se intercambia.

Comentarios

La función miembro intercambia el contenido de *this y right en tiempo constante y no inicia excepciones.

match_results::value_type

El tipo de una subcoincidencia.

typedef sub_match<BidIt> value_type;

Comentarios

La definición de tipo es un sinónimo del tipo sub_match<BidIt>.

Consulte también

<regex>