basic_regex (Clase)
Contiene una expresión regular.
Sintaxis
template <class Elem, class RXtraits>
class basic_regex
Parámetros
Elem
Tipo de los elementos que debe coincidir.
RXtraits
Clase Traits para los elementos.
Comentarios
La plantilla de clase describe un objeto que contiene una expresión regular. Los objetos de esta plantilla de clase pueden pasarse a las funciones de plantilla regex_match, regex_search y regex_replace. También pasa los argumentos de cadena de texto adecuados para buscar texto que coincida con la expresión regular. Hay dos especializaciones de esta plantilla de clase, con las definiciones de tipo regex para los elementos de tipo char
y wregex para los elementos de tipo wchar_t
.
El argumento de plantilla RXtraits describe las distintas propiedades importantes de la sintaxis de las expresiones regulares que la plantilla de clase admite. Una clase que especifica estos rasgos de expresiones regulares debe tener la misma interfaz externa que un objeto de tipo regex_traits (Clase).
Algunas funciones toman una secuencia de operandos que define una expresión regular. Puede especificar dicha secuencia de operandos de varias maneras:
ptr
: secuencia terminada en null, (como una cadena de C, para Elem de tipo char
) que comience en ptr
(que no puede ser un puntero null), donde el elemento que finaliza es el valor value_type()
y no forma parte de la secuencia de operandos
ptr
, count
: una secuencia de elementos count
que comienza en ptr
(que no puede ser un puntero null)
str
: la secuencia especificada por el objeto basic_string
str
first
, last
: una secuencia de elementos delimitada por los iteradores first
y last
, en el intervalo [first, last)
right
: el objeto basic_regex
right
Las funciones anteriores miembro también toman un argumento flags
que especifica las distintas opciones para la interpretación de la expresión regular además de las descritas por el tipo RXtraits.
Miembros
Member | Valor predeterminado |
---|---|
public static const flag_type icase | regex_constants::icase |
public static const flag_type nosubs | regex_constants::nosubs |
public static const flag_type optimize | regex_constants::optimize |
public static const flag_type collate | regex_constants::collate |
public static const flag_type ECMAScript | regex_constants::ECMAScript |
public static const flag_type basic | regex_constants::basic |
public static const flag_type extended | regex_constants::extended |
public static const flag_type awk | regex_constants::awk |
public static const flag_type grep | regex_constants::grep |
public static const flag_type egrep | regex_constants::egrep |
rasgos de RXtraits privados |
Constructores
Constructor | Descripción |
---|---|
basic_regex | Construye el objeto de expresión regular. |
Typedefs
Nombre de tipo | Descripción |
---|---|
flag_type | El tipo de marcas de opción de sintaxis. |
locale_type | El tipo de objeto de configuración regional almacenado. |
value_type | El tipo de elemento. |
Funciones miembro
Función de miembro | Descripción |
---|---|
assign | Asigna un valor al objeto de expresión regular. |
flags | Devuelve marcas de opción de sintaxis. |
getloc | Devuelve el objeto de configuración regional almacenado. |
imbue | Modifica el objeto de configuración regional almacenado. |
mark_count | Devuelve el número de subexpresiones coincidentes. |
swap | Intercambia dos objetos de expresión regular. |
Operadores
Operador | Descripción |
---|---|
operator= | Asigna un valor al objeto de expresión regular. |
Requisitos
Encabezado:<regex>
Espacio de nombres: std
Ejemplo
// std__regex__basic_regex.cpp
// compile with: /EHsc
#include <regex>
#include <iostream>
using namespace std;
int main()
{
regex::value_type elem = 'x';
regex::flag_type flag = regex::grep;
elem = elem; // to quiet "unused" warnings
flag = flag;
// constructors
regex rx0;
cout << "match(\"abc\", \"\") == " << boolalpha
<< regex_match("abc", rx0) << endl;
regex rx1("abcd", regex::ECMAScript);
cout << "match(\"abc\", \"abcd\") == " << boolalpha
<< regex_match("abc", rx1) << endl;
regex rx2("abcd", 3);
cout << "match(\"abc\", \"abc\") == " << boolalpha
<< regex_match("abc", rx2) << endl;
regex rx3(rx2);
cout << "match(\"abc\", \"abc\") == " << boolalpha
<< regex_match("abc", rx3) << endl;
string str("abcd");
regex rx4(str);
cout << "match(string(\"abcd\"), \"abc\") == " << boolalpha
<< regex_match("abc", rx4) << endl;
regex rx5(str.begin(), str.end() - 1);
cout << "match(string(\"abc\"), \"abc\") == " << boolalpha
<< regex_match("abc", rx5) << endl;
cout << endl;
// assignments
rx0 = "abc";
rx0 = rx1;
rx0 = str;
rx0.assign("abcd", regex::ECMAScript);
rx0.assign("abcd", 3);
rx0.assign(rx1);
rx0.assign(str);
rx0.assign(str.begin(), str.end() - 1);
rx0.swap(rx1);
// mark_count
cout << "\"abc\" mark_count == "
<< regex("abc").mark_count() << endl;
cout << "\"(abc)\" mark_count == "
<< regex("(abc)").mark_count() << endl;
// locales
regex::locale_type loc = rx0.imbue(locale());
cout << "getloc == imbued == " << boolalpha
<< (loc == rx0.getloc()) << endl;
// initializer_list
regex rx6({ 'a', 'b', 'c' }, regex::ECMAScript);
cout << "match(\"abc\") == " << boolalpha
<< regex_match("abc", rx6);
cout << endl;
}
match("abc", "") == false
match("abc", "abcd") == false
match("abc", "abc") == true
match("abc", "abc") == true
match(string("abcd"), "abc") == false
match(string("abc"), "abc") == true
"abc" mark_count == 0
"(abc)" mark_count == 1
getloc == imbued == true
match("abc") == true
basic_regex::assign
Asigna un valor al objeto de expresión regular.
basic_regex& assign(
const basic_regex& right);
basic_regex& assign(
const Elem* ptr,
flag_type flags = ECMAScript);
basic_regex& assign(
const Elem* ptr,
size_type len,
flag_type flags = ECMAScript);
basic_regex& assign(
initializer_list<_Elem> IList,
flag_type flags = regex_constants::ECMAScript);
template <class STtraits, class STalloc>
basic_regex& assign(
const basic_string<Elem, STtraits, STalloc>& str,
flag_type flags = ECMAScript);
template <class InIt>
basic_regex& assign(
InIt first, InIt last,
flag_type flags = ECMAScript);
Parámetros
STtraits
Clase traits para un origen de cadena.
STalloc
Clase de asignador para un origen de cadena.
InIt
Tipo de iterador de entrada para un origen de intervalo.
right
Origen regex que se va a copiar.
ptr
Puntero al inicio de la secuencia que se va a copiar.
flags
Marcas de opción de sintaxis que se van a agregar al copiar.
len/TD>
Longitud de la secuencia que se va a copiar.
str
Cadena que se va a copiar.
first
Principio de la secuencia que se va a copiar.
last
Final de la secuencia que se va a copiar.
IList
initializer_list que se va a copiar.
Comentarios
Cada una de las funciones miembro reemplaza la expresión regular que contiene *this
con la expresión regular descrita por la secuencia de operandos y después devuelve *this
.
basic_regex::basic_regex
Construye el objeto de expresión regular.
basic_regex();
explicit basic_regex(
const Elem* ptr,
flag_type flags);
explicit basic_regex(
const Elem* ptr,
size_type len,
flag_type flags);
basic_regex(
const basic_regex& right);
basic_regex(
initializer_list<Type> IList,
flag_type flags);
template <class STtraits, class STalloc>
explicit basic_regex(
const basic_string<Elem, STtraits, STalloc>& str,
flag_type flags);
template <class InIt>
explicit basic_regex(
InIt first,
InIt last,
flag_type flags);
Parámetros
STtraits
Clase traits para un origen de cadena.
STalloc
Clase de asignador para un origen de cadena.
InIt
Tipo de iterador de entrada para un origen de intervalo.
right
Origen regex que se va a copiar.
ptr
Puntero al inicio de la secuencia que se va a copiar.
flags
Marcas de opción de sintaxis que se van a agregar al copiar.
len/TD>
Longitud de la secuencia que se va a copiar.
str
Cadena que se va a copiar.
first
Principio de la secuencia que se va a copiar.
last
Final de la secuencia que se va a copiar.
IList
initializer_list que se va a copiar.
Comentarios
Todos los constructores almacenan un objeto construido de forma predeterminada de tipo RXtraits
.
El primer constructor crea un objeto basic_regex
vacío. Los otros constructores crean un objeto basic_regex
que contiene la expresión regular descrita por la secuencia de operandos.
Un objeto basic_regex
vacío no coincide con ninguna secuencia de caracteres cuando se pasa a regex_match, regex_search o regex_replace.
basic_regex::flag_type
El tipo de marcas de opción de sintaxis.
typedef regex_constants::syntax_option_type flag_type;
Comentarios
El tipo es sinónimo de regex_constants::syntax_option_type.
basic_regex::flags
Devuelve marcas de opción de sintaxis.
flag_type flags() const;
Comentarios
La función miembro devuelve el valor del argumento flag_type
pasado a la llamada más reciente a una de las funciones miembro basic_regex::assign o, si no se hizo dicha llamada, el valor pasado al constructor.
basic_regex::getloc
Devuelve el objeto de configuración regional almacenado.
locale_type getloc() const;
Comentarios
La función miembro devuelve traits.
regex_traits::getloc()
.
basic_regex::imbue
Modifica el objeto de configuración regional almacenado.
locale_type imbue(locale_type loc);
Parámetros
loc
El objeto de configuración regional que se va a almacenar.
Comentarios
La función miembro vacía *this
y devuelve traits.
regex_traits::imbue(loc)
.
basic_regex::locale_type
El tipo de objeto de configuración regional almacenado.
typedef typename RXtraits::locale_type locale_type;
Comentarios
El tipo es un sinónimo de regex_traits::locale_type.
basic_regex::mark_count
Devuelve el número de subexpresiones coincidentes.
unsigned mark_count() const;
Comentarios
La función miembro devuelve el número de grupos de capturas de la expresión regular.
basic_regex::operator=
Asigna un valor al objeto de expresión regular.
basic_regex& operator=(const basic_regex& right);
basic_regex& operator=(const Elem *str);
template <class STtraits, class STalloc>
basic_regex& operator=(const basic_string<Elem, STtraits, STalloc>& str);
Parámetros
STtraits
Clase traits para un origen de cadena.
STalloc
Clase de asignador para un origen de cadena.
right
Origen regex que se va a copiar.
str
Cadena que se va a copiar.
Comentarios
Cada uno de los operandos reemplaza la expresión regular incluida en *this
con la expresión regular descrita por la secuencia de operandos y después devuelve *this
.
basic_regex::swap
Intercambia dos objetos de expresión regular.
void swap(basic_regex& right) throw();
Parámetros
right
El objeto de expresión regular con el que se intercambia.
Comentarios
La función miembro intercambia las expresiones regulares entre *this
y right. Lo hace en tiempo constante y no inicia ninguna excepción.
basic_regex::value_type
El tipo de elemento.
typedef Elem value_type;
Comentarios
El tipo es un sinónimo del parámetro de plantilla Elem.
Consulte también
<regex>
regex_match
regex_search
regex_replace
regex
wregex
regex_traits (Clase)