basic_regex — Klasa
Owija wyrażenie regularne.
Składnia
template <class Elem, class RXtraits>
class basic_regex
Parametry
Elem
Typ elementów, do których ma pasować.
RXtraits
Klasa cech dla elementów.
Uwagi
Szablon klasy opisuje obiekt, który zawiera wyrażenie regularne. Obiekty tego szablonu klasy można przekazać do funkcji szablonu regex_match, regex_search i regex_replace. Przekazuje również odpowiednie argumenty ciągu tekstowego, aby wyszukać tekst zgodny z wyrażeniem regularnym. Istnieją dwie specjalizacje tego szablonu klasy, z definicjami typów wyrażeń regularnych dla elementów typu char
i wregex dla elementów typu wchar_t
.
Argument szablonu RXtraits opisuje różne ważne właściwości składni wyrażeń regularnych, które obsługuje szablon klasy. Klasa określająca te cechy wyrażeń regularnych musi mieć ten sam interfejs zewnętrzny co obiekt typu regex_traits Klasa.
Niektóre funkcje przyjmują sekwencję operandów, która definiuje wyrażenie regularne. Można określić taką sekwencję operandów na kilka sposobów:
ptr
: sekwencja zakończona o wartości null (na przykład ciąg C, dla elem typu char
) rozpoczynająca się od ptr
(która nie może być wskaźnikiem o wartości null), gdzie element zakończenia jest wartością value_type()
i nie jest częścią sekwencji operandu
ptr
, count
: sekwencja elementów rozpoczynających count
się od ptr
(które nie mogą być wskaźnikiem o wartości null)
str
: sekwencja określona basic_string
przez obiekt str
first
, last
: sekwencja elementów rozdzielonych przez iteratory first
i last
, w zakresie [first, last)
right
basic_regex
: obiektright
Powyższe funkcje składowe przyjmują również argument flags
określający różne opcje interpretacji wyrażenia regularnego oprócz opcji opisanych przez typ RXtraits .
Elementy członkowskie
Element członkowski | Wartość domyślna |
---|---|
publiczny statyczny const flag_type icase | regex_constants::icase |
publiczny statyczny const flag_type nosubs | regex_constants::nosubs |
publiczna statyczna flag_type optymalizowanie | regex_constants::optimize |
publiczne połączenie statyczne flag_type | regex_constants::collate |
publiczny statyczny flag_type ECMAScript | regex_constants::ECMAScript |
publiczny statyczny const flag_type basic | regex_constants::basic |
publiczne statyczne flag_type rozszerzone | regex_constants::extended |
publiczny statyczny const flag_type awk | regex_constants::awk |
publiczny statyczny const flag_type grep | regex_constants::grep |
publiczny statyczny const flag_type egrep | regex_constants::egrep |
prywatne cechy RXtraits |
Konstruktory
Konstruktor | opis |
---|---|
basic_regex | Skonstruuj obiekt wyrażenia regularnego. |
Typedefs
Nazwa typu | opis |
---|---|
flag_type | Typ flag opcji składni. |
locale_type | Typ przechowywanego obiektu ustawień regionalnych. |
value_type | Typ elementu. |
Funkcje składowe
Funkcja składowa | opis |
---|---|
przypisać | Przypisuje wartość do obiektu wyrażenia regularnego. |
Flagi | Zwraca flagi opcji składni. |
getloc | Zwraca przechowywany obiekt ustawień regionalnych. |
Nasycić | Zmienia przechowywany obiekt ustawień regionalnych. |
mark_count | Zwraca liczbę dopasowanych podwyrażeń. |
zamiana | Zamienia dwa obiekty wyrażeń regularnych. |
Operatory
Operator | opis |
---|---|
operator = | Przypisuje wartość do obiektu wyrażenia regularnego. |
Wymagania
Nagłówek:<regex>
Przestrzeń nazw: std
Przykład
// 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
Przypisuje wartość do obiektu wyrażenia regularnego.
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);
Parametry
STtraits
Klasa Traits dla źródła ciągów.
STalloc
Klasa alokatora dla źródła ciągów.
Init
Typ iteratora wejściowego dla źródła zakresu.
Prawy
Źródło wyrażeń regularnych do skopiowania.
ptr
Wskaźnik na początek sekwencji do skopiowania.
Flagi
Flagi opcji składni do dodania podczas kopiowania.
len/TD>
Długość sekwencji do skopiowania.
Str
Ciąg do skopiowania.
pierwszy
Początek sekwencji do skopiowania.
ostatni
Koniec sekwencji do skopiowania.
IList
Initializer_list do skopiowania.
Uwagi
Funkcje składowe zastępują wyrażenie regularne przechowywane za *this
pomocą wyrażenia regularnego opisanego przez sekwencję operandu, a następnie zwracają wartość *this
.
basic_regex::basic_regex
Skonstruuj obiekt wyrażenia regularnego.
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);
Parametry
STtraits
Klasa Traits dla źródła ciągów.
STalloc
Klasa alokatora dla źródła ciągów.
Init
Typ iteratora wejściowego dla źródła zakresu.
Prawy
Źródło wyrażeń regularnych do skopiowania.
ptr
Wskaźnik na początek sekwencji do skopiowania.
Flagi
Flagi opcji składni do dodania podczas kopiowania.
len/TD>
Długość sekwencji do skopiowania.
Str
Ciąg do skopiowania.
pierwszy
Początek sekwencji do skopiowania.
ostatni
Koniec sekwencji do skopiowania.
IList
Initializer_list do skopiowania.
Uwagi
Wszystkie konstruktory przechowują domyślny obiekt typu RXtraits
.
Pierwszy konstruktor tworzy pusty basic_regex
obiekt. Inne konstruktory skonstruuje basic_regex
obiekt, który zawiera wyrażenie regularne opisane przez sekwencję operandów.
basic_regex
Pusty obiekt nie jest zgodny z żadną sekwencją znaków po przekazaniu do regex_match, regex_search lub regex_replace.
basic_regex::flag_type
Typ flag opcji składni.
typedef regex_constants::syntax_option_type flag_type;
Uwagi
Typ jest synonimem regex_constants ::syntax_option_type.
basic_regex::flags
Zwraca flagi opcji składni.
flag_type flags() const;
Uwagi
Funkcja składowa zwraca wartość argumentu flag_type
przekazanego do ostatniego wywołania do jednego z funkcji basic_regex::assign member lub, jeśli takie wywołanie nie zostało wykonane, wartość przekazana do konstruktora.
basic_regex::getloc
Zwraca przechowywany obiekt ustawień regionalnych.
locale_type getloc() const;
Uwagi
Funkcja składowa zwraca traits.
regex_traits::getloc()
.
basic_regex::imbue
Zmienia przechowywany obiekt ustawień regionalnych.
locale_type imbue(locale_type loc);
Parametry
Loc
Obiekt ustawień regionalnych do przechowywania.
Uwagi
Funkcja składowa opróżnia *this
i zwraca traits.
regex_traits::imbue(loc)
.
basic_regex::locale_type
Typ przechowywanego obiektu ustawień regionalnych.
typedef typename RXtraits::locale_type locale_type;
Uwagi
Typ jest synonimem regex_traits ::locale_type.
basic_regex::mark_count
Zwraca liczbę dopasowanych podwyrażeń.
unsigned mark_count() const;
Uwagi
Funkcja składowa zwraca liczbę grup przechwytywania w wyrażeniu regularnym.
basic_regex::operator=
Przypisuje wartość do obiektu wyrażenia regularnego.
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);
Parametry
STtraits
Klasa Traits dla źródła ciągów.
STalloc
Klasa alokatora dla źródła ciągów.
Prawy
Źródło wyrażeń regularnych do skopiowania.
Str
Ciąg do skopiowania.
Uwagi
Operatory, z których każda zastępuje wyrażenie regularne przechowywane *this
za pomocą wyrażenia regularnego opisanego przez sekwencję operandu, a następnie zwracają wartość *this
.
basic_regex::swap
Zamienia dwa obiekty wyrażeń regularnych.
void swap(basic_regex& right) throw();
Parametry
Prawy
Obiekt wyrażenia regularnego do zamiany.
Uwagi
Funkcja składowa zamienia wyrażenia regularne między *this
i po prawej. Robi to w stałym czasie i nie zgłasza żadnych wyjątków.
basic_regex::value_type
Typ elementu.
typedef Elem value_type;
Uwagi
Typ jest synonimem parametru szablonu Elem.
Zobacz też
<regex>
regex_match
regex_search
regex_replace
regex
wregex
regex_traits, klasa