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