Classe basic_regex
Encapsula uma expressão regular.
Sintaxe
template <class Elem, class RXtraits>
class basic_regex
Parâmetros
Elem
O tipo de elemento a ser correspondido.
RXtraits
Classe de características para elementos.
Comentários
Uma classe de modelo descreve um objeto que mantém uma expressão regular. Objetos desse modelo de classe podem ser passados para as funções de modelo regex_match, regex_search e regex_replace. Ele também passa os argumentos de cadeia de caracteres de texto adequados para pesquisar texto que corresponda à expressão regular. Há duas especializações desse modelo de classe, com as definições de tipo regex para os elementos do tipo char
, e wregex para elementos do tipo wchar_t
.
O argumento de modelo RXtraits descreve as várias propriedades importantes da sintaxe das expressões regulares que têm suporte do modelo de classe. Uma classe que especifica essas características da expressão regular precisa ter a mesma interface externa que um objeto do tipo classe regex_traits.
Algumas funções usam uma sequência de operando que define uma expressão regular. Você pode especificar uma sequência de operando de várias maneiras:
ptr
: uma sequência terminada em nulo (como uma cadeia de caracteres C, para Elem do tipo char
) começando em ptr
(que não pode ser um ponteiro nulo), em que o elemento terminador é o valor value_type()
e não faz parte da sequência de operandos
ptr
, count
: uma sequência de count
elementos começando em ptr
(que não pode ser um ponteiro nulo)
str
: a sequência especificada pelo objeto basic_string
str
first
, last
: uma sequência de elementos delimitados pelos iteradores first
e last
, no intervalo [first, last)
right
: o objeto basic_regex
right
As funções membro acima também usam um argumento flags
que especifica várias opções para a interpretação da expressão regular, além daquelas descritas pelo tipo RXtraits.
Membros
Membro | Valor Padrão |
---|---|
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 |
público estático const flag_type grep | regex_constants::grep |
egrep flag_type estático público | regex_constants::egrep |
características de RXtraits privado |
Construtores
Construtor | Descrição |
---|---|
basic_regex | Construa o objeto de expressão regular. |
Typedefs
Nome do tipo | Descrição |
---|---|
flag_type | O tipo de sinalizadores de opção de sintaxe. |
locale_type | O tipo do objeto de localidade armazenado. |
value_type | O tipo de elemento. |
Funções de membro
Função de membro | Descrição |
---|---|
assign | Atribui um valor ao objeto da expressão regular. |
sinalizadores | Retorna os sinalizadores de opção de sintaxe. |
getloc | Retorna o objeto de localidade armazenado. |
imbue | Altera o objeto de localidade armazenado. |
mark_count | Retorna o número de subexpressões correspondente. |
troca | Troca dois objetos de expressão regular. |
Operadores
Operador | Descrição |
---|---|
operator= | Atribui um valor ao objeto da expressão regular. |
Requisitos
Cabeçalho:<regex>
Namespace: std
Exemplo
// 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::atribuir
Atribui um valor ao objeto da expressão 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
Classe de características para uma fonte de cadeia de caracteres.
STalloc
Classe de alocador de uma fonte de cadeia de caracteres.
InIt
Tipo de iterador de entrada para uma fonte de intervalo.
direita
Fonte de regex a copiar.
ptr
Ponteiro para o início da sequência a copiar.
sinalizadores
Sinalizadores de opção de sintaxe a adicionar ao copiar.
len/TD>
Comprimento da sequência a copiar.
str
Cadeia de caracteres a copiar.
first
Início da sequência a copiar.
last
Fim da sequência a copiar.
IList
A initializer_list a ser copiada.
Comentários
As funções membro substituem, cada uma, a expressão regular mantida por *this
pela expressão regular descrita pela sequência de operando, então retornam *this
.
basic_regex::basic_regex
Construa o objeto de expressão 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
Classe de características para uma fonte de cadeia de caracteres.
STalloc
Classe de alocador de uma fonte de cadeia de caracteres.
InIt
Tipo de iterador de entrada para uma fonte de intervalo.
direita
Fonte de regex a copiar.
ptr
Ponteiro para o início da sequência a copiar.
sinalizadores
Sinalizadores de opção de sintaxe a adicionar ao copiar.
len/TD>
Comprimento da sequência a copiar.
str
Cadeia de caracteres a copiar.
first
Início da sequência a copiar.
last
Fim da sequência a copiar.
IList
A initializer_list a ser copiada.
Comentários
Todos os construtores armazenam um objeto construído por padrão do tipo RXtraits
.
O primeiro construtor constrói um objeto basic_regex
vazio. Os outros construtores constroem um objeto basic_regex
que contém a expressão regular descrita pela sequência de operando.
Um objeto basic_regex
vazio não corresponde a nenhuma sequência de caracteres quando passado para a regex_match, regex_search ou regex_replace.
basic_regex::flag_type
O tipo de sinalizadores de opção de sintaxe.
typedef regex_constants::syntax_option_type flag_type;
Comentários
O tipo é sinônimo de regex_constants::syntax_option_type.
basic_regex::flags
Retorna os sinalizadores de opção de sintaxe.
flag_type flags() const;
Comentários
A função membro retorna o valor do argumento flag_type
passado para a chamada mais recente para uma das funções membro basic_regex::assign ou, se nenhuma chamada assim tiver sido feita, o valor passado para o construtor.
basic_regex::getloc
Retorna o objeto de localidade armazenado.
locale_type getloc() const;
Comentários
A função membro retorna traits.
regex_traits::getloc()
.
basic_regex::imbuir
Altera o objeto de localidade armazenado.
locale_type imbue(locale_type loc);
Parâmetros
loc
O objeto de localidade a ser armazenado.
Comentários
A função de membro esvazia *this
e retorna traits.
regex_traits::imbue(loc)
.
basic_regex::locale_type
O tipo do objeto de localidade armazenado.
typedef typename RXtraits::locale_type locale_type;
Comentários
O tipo é um sinônimo de regex_traits::locale_type.
basic_regex::mark_count
Retorna o número de subexpressões correspondente.
unsigned mark_count() const;
Comentários
A função membro retorna o número de grupos de captura na expressão regular.
basic_regex::operador=
Atribui um valor ao objeto da expressão 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
Classe de características para uma fonte de cadeia de caracteres.
STalloc
Classe de alocador de uma fonte de cadeia de caracteres.
direita
Fonte de regex a copiar.
str
Cadeia de caracteres a copiar.
Comentários
Os operadores substituem, cada um, a expressão regular mantida por *this
pela expressão regular descrita pela sequência de operando, então retornam *this
.
basic_regex::swap
Troca dois objetos de expressão regular.
void swap(basic_regex& right) throw();
Parâmetros
direita
O objeto de expressão regular com o qual trocar.
Comentários
A função membro troca as expressões regulares entre *this
e right. Ela faz isso em um horário constante e não gera exceções.
basic_regex::value_type
O tipo de elemento.
typedef Elem value_type;
Comentários
O tipo é um sinônimo do parâmetro de modelo Elem.
Confira também
<regex>
regex_match
regex_search
regex_replace
regex
wregex
Classe regex_traits