match_results — Klasa
Przechowuje sekwencję podpasek.
Składnia
template <class BidIt, class Alloc>
class match_results
Parametry
BidIt
Typ iteratora dla podmatów.
Alloc
Typ alokatora do zarządzania pamięcią.
Uwagi
Szablon klasy opisuje obiekt, który steruje niemodyfikowaną sekwencją elementów typu sub_match<BidIt>
generowanych przez wyszukiwanie wyrażeń regularnych. Każdy element wskazuje podsekwencję zgodną z grupą przechwytywania odpowiadającą temu elementowi.
Konstruktory
Konstruktor | opis |
---|---|
match_results | Konstruuje obiekt . |
Typedefs
Nazwa typu | opis |
---|---|
allocator_type | Typ alokatora do zarządzania pamięcią. |
char_type | Typ elementu. |
const_iterator | Typ iteratora const dla podmatów. |
const_reference | Typ odwołania const elementu. |
difference_type | Typ różnicy iteratora. |
Sterująca | Typ iteratora dla podmatów. |
odniesienie | Typ odwołania do elementu. |
size_type | Typ liczby podmatch. |
string_type | Typ ciągu. |
value_type | Typ podmatu. |
Funkcje składowe
Funkcja składowa | opis |
---|---|
zaczynać | Wyznacza początek sekwencji podpasowania. |
empty | Testy podmatów. |
koniec | Wyznacza koniec sekwencji podpasowania. |
format | Poddopasowania formatów. |
get_allocator | Zwraca przechowywany alokator. |
length | Zwraca długość podmatu. |
max_size | Pobiera największą liczbę podpasek. |
pozycja | Pobierz przesunięcie początkowe podgrupy. |
przedrostek | Pobiera sekwencję przed pierwszym podpasem. |
rozmiar | Zlicza liczbę podmatów. |
Str | Zwraca podmatcz. |
przyrostek | Pobiera sekwencję po ostatnim podpasaniu. |
zamiana | Zamienia dwa obiekty match_results. |
Operatory
Operator | opis |
---|---|
operator = | Skopiuj obiekt match_results. |
operator[] | Uzyskiwanie dostępu do podobiektu. |
Wymagania
Nagłówek:<regex>
Przestrzeń nazw: std
Przykład
// 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
Typ alokatora do zarządzania pamięcią.
typedef Alloc allocator_type;
Uwagi
Typedef jest synonimem argumentu szablonu Alloc.
match_results::begin
Wyznacza początek sekwencji podpasowania.
const_iterator begin() const;
Uwagi
Funkcja składowa zwraca iterator dostępu losowego wskazujący pierwszy element sekwencji (lub tuż poza końcem pustej sekwencji).
match_results::char_type
Typ elementu.
typedef typename iterator_traits<BidIt>::value_type char_type;
Uwagi
Typedef jest synonimem typu iterator_traits<BidIt>::value_type
, który jest typem elementu sekwencji znaków, która została przeszukana.
match_results::const_iterator
Typ iteratora const dla podmatów.
typedef T0 const_iterator;
Uwagi
Typedef opisuje obiekt, który może służyć jako stały iterator dostępu losowego dla kontrolowanej sekwencji.
match_results::const_reference
Typ odwołania const elementu.
typedef const typename Alloc::const_reference const_reference;
Uwagi
Typedef opisuje obiekt, który może służyć jako stałe odwołanie do elementu kontrolowanej sekwencji.
match_results::d ifference_type
Typ różnicy iteratora.
typedef typename iterator_traits<BidIt>::difference_type difference_type;
Uwagi
Definicja typu jest synonimem typu iterator_traits<BidIt>::difference_type
; opisuje obiekt, który może reprezentować różnicę między dowolnymi dwoma iteratorami wskazującymi elementy kontrolowanej sekwencji.
match_results::empty
Testy podmatów.
bool empty() const;
Uwagi
Funkcja składowa zwraca wartość true tylko wtedy, gdy wyszukiwanie wyrażeń regularnych nie powiodło się.
match_results::end
Wyznacza koniec sekwencji podpasowania.
const_iterator end() const;
Uwagi
Funkcja składowa zwraca iterator, który wskazuje tuż poza końcem sekwencji.
match_results::format
Poddopasowania formatów.
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;
Parametry
OutIt
Typ iteratora danych wyjściowych.
out
Strumień wyjściowy, do którego będą zapisywane dane.
Fmt
Ciąg formatu.
Flagi
Flagi formatu.
Uwagi
Każda funkcja składowa generuje sformatowany tekst pod kontrolą formatu fmt. Pierwsza funkcja składowa zapisuje sformatowany tekst do sekwencji zdefiniowanej przez jej argument i zwraca wartość out. Druga funkcja składowa zwraca obiekt ciągu przechowujący kopię sformatowanego tekstu.
Aby wygenerować sformatowany tekst. tekst literału w ciągu formatu jest zwykle kopiowany do sekwencji docelowej. Każda sekwencja unikowa w ciągu formatu jest zastępowana przez tekst, który reprezentuje. Szczegóły dotyczące kopiowania i wymiany są kontrolowane przez flagi formatu przekazane do funkcji.
match_results::get_allocator
Zwraca przechowywany alokator.
allocator_type get_allocator() const;
Uwagi
Funkcja składowa zwraca kopię obiektu alokatora używanego przez *this
program do przydzielenia jego sub_match
obiektów.
match_results::iterator
Typ iteratora dla podmatów.
typedef const_iterator iterator;
Uwagi
Typ opisuje obiekt, który może służyć jako iterator dostępu losowego dla kontrolowanej sekwencji.
match_results::length
Zwraca długość podmatu.
difference_type length(size_type sub = 0) const;
Parametry
Sub
Indeks podpasu.
Uwagi
Funkcja składowa zwraca wartość (*this)[sub].length()
.
match_results::match_results
Konstruuje obiekt .
explicit match_results(const Alloc& alloc = Alloc());
match_results(const match_results& right);
Parametry
alloc
Obiekt alokatora, który ma być przechowywany.
Prawy
Obiekt match_results do skopiowania.
Uwagi
Pierwszy konstruktor tworzy match_results
obiekt, który nie zawiera podmatów. Drugi konstruktor tworzy match_results
obiekt, który jest kopią prawej.
match_results::max_size
Pobiera największą liczbę podpasek.
size_type max_size() const;
Uwagi
Funkcja składowa zwraca długość najdłuższej sekwencji, którą obiekt może kontrolować.
match_results::operator=
Skopiuj obiekt match_results.
match_results& operator=(const match_results& right);
Parametry
Prawy
Obiekt match_results do skopiowania.
Uwagi
Operator elementu członkowskiego zastępuje sekwencję kontrolowaną przez *this
kopię sekwencji kontrolowanej przez prawo.
match_results::operator[]
Uzyskiwanie dostępu do podobiektu.
const_reference operator[](size_type n) const;
Parametry
n
Indeks podpasu.
Uwagi
Funkcja składowa zwraca odwołanie do elementu n kontrolowanej sekwencji lub odwołanie do pustego sub_match
obiektu, jeśli size() <= n
lub jeśli grupa przechwytywania n nie była częścią dopasowania.
match_results::p osition
Pobierz przesunięcie początkowe podgrupy.
difference_type position(size_type sub = 0) const;
Parametry
Sub
Indeks podpasu.
Uwagi
Funkcja składowa zwraca std::distance(prefix().first, (*this)[sub].first)
wartość , czyli odległość od pierwszego znaku w sekwencji docelowej do pierwszego znaku w podpasce wskazywanej przez element n
kontrolowanej sekwencji.
match_results::p refix
Pobiera sekwencję przed pierwszym podpasem.
const_reference prefix() const;
Uwagi
Funkcja składowa zwraca odwołanie do obiektu typu sub_match<BidIt>
wskazującego sekwencję znaków rozpoczynającą się na początku sekwencji docelowej i kończy się na (*this)[0].first
, czyli wskazuje na tekst poprzedzający dopasowaną podsekwencję.
match_results::reference
Typ odwołania do elementu.
typedef const_reference reference;
Uwagi
Typ jest synonimem typu const_reference
.
match_results::size
Zlicza liczbę podmatów.
size_type size() const;
Uwagi
Funkcja składowa zwraca jedną więcej niż liczbę grup przechwytywania w wyrażeniu regularnym, które zostało użyte do wyszukiwania, lub zero, jeśli wyszukiwanie nie zostało wykonane.
match_results::size_type
Typ liczby podmatch.
typedef typename Alloc::size_type size_type;
Uwagi
Typ jest synonimem typu Alloc::size_type
.
match_results::str
Zwraca podmatcz.
string_type str(size_type sub = 0) const;
Parametry
Sub
Indeks podpasu.
Uwagi
Funkcja składowa zwraca wartość string_type((*this)[sub])
.
match_results::string_type
Typ ciągu.
typedef basic_string<char_type> string_type;
Uwagi
Typ jest synonimem typu basic_string<char_type>
.
match_results::sufiks
Pobiera sekwencję po ostatnim podpasaniu.
const_reference suffix() const;
Uwagi
Funkcja składowa zwraca odwołanie do obiektu typu sub_match<BidIt>
wskazującego sekwencję znaków rozpoczynającą się od (*this)[size() - 1].second
i kończącą się na końcu sekwencji docelowej, czyli wskazuje na tekst zgodny z podsekwencją.
match_results::swap
Zamienia dwa obiekty match_results.
void swap(const match_results& right) throw();
Parametry
Prawy
Obiekt match_results do zamiany.
Uwagi
Funkcja składowa zamienia zawartość *this
i prawo w stałym czasie i nie zgłasza wyjątków.
match_results::value_type
Typ podmatu.
typedef sub_match<BidIt> value_type;
Uwagi
Typedef jest synonimem typu sub_match<BidIt>
.