match_results – třída
Obsahuje posloupnost podsoučtů.
Syntaxe
template <class BidIt, class Alloc>
class match_results
Parametry
BidIt
Typ iterátoru pro podsložky.
Aloka
Typ alokátoru pro správu úložiště
Poznámky
Šablona třídy popisuje objekt, který řídí nemodifikovatelnou sekvenci prvků typu sub_match<BidIt>
vygenerovaných hledáním regulárního výrazu. Každý prvek odkazuje na dílčí sekvenci, která odpovídala skupině zachycení odpovídající danému prvku.
Konstruktory
Konstruktor | Popis |
---|---|
match_results | Vytvoří objekt. |
Typedefs
Název typu | Popis |
---|---|
allocator_type | Typ alokátoru pro správu úložiště |
char_type | Typ prvku |
const_iterator | Typ iterátoru const pro podsložky. |
const_reference | Typ odkazu na prvek const. |
difference_type | Typ rozdílu iterátoru. |
iterátor | Typ iterátoru pro podsložky. |
odkaz | Typ odkazu na prvek. |
size_type | Typ dílčího počtu. |
string_type | Typ řetězce. |
value_type | Typ podsoučtu. |
Členské funkce
Členová funkce | Popis |
---|---|
začít | Určuje začátek podsekvence. |
empty | Testuje žádné podsložky. |
konec | Určuje konec podsekvence. |
format | Formátuje dílčí shody. |
get_allocator | Vrátí uložený alokátor. |
length | Vrátí délku podsložky. |
max_size | Získá největší počet podsoučtů. |
postavení | Získání počátečního posunu podskupiny |
předpona | Získá sekvenci před prvním podsoučtem. |
velikost | Spočítá počet podsoučtů. |
Str | Vrátí podsložku. |
přípona | Získá sekvenci po posledním podsoučtu. |
vyměnit | Prohodí dva match_results objekty. |
Operátory
Operátor | Popis |
---|---|
operator= | Zkopírujte objekt match_results. |
operator[] | Přístup k podobjektu |
Požadavky
Header:<regex>
Namespace: std
Příklad
// 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 alokátoru pro správu úložiště
typedef Alloc allocator_type;
Poznámky
Typedef je synonymem argumentu šablony Alloc.
match_results::begin
Určuje začátek podsekvence.
const_iterator begin() const;
Poznámky
Členová funkce vrátí iterátor náhodného přístupu, který odkazuje na první prvek sekvence (nebo těsně za koncem prázdné sekvence).
match_results::char_type
Typ prvku
typedef typename iterator_traits<BidIt>::value_type char_type;
Poznámky
Typedef je synonymem pro typ iterator_traits<BidIt>::value_type
, což je typ prvku sekvence znaků, která byla prohledána.
match_results::const_iterator
Typ iterátoru const pro podsložky.
typedef T0 const_iterator;
Poznámky
Typedef popisuje objekt, který může sloužit jako konstantní iterátor náhodného přístupu pro řízenou sekvenci.
match_results::const_reference
Typ odkazu na prvek const.
typedef const typename Alloc::const_reference const_reference;
Poznámky
Typedef popisuje objekt, který může sloužit jako konstantní odkaz na prvek řízené sekvence.
match_results::d ifference_type
Typ rozdílu iterátoru.
typedef typename iterator_traits<BidIt>::difference_type difference_type;
Poznámky
Typedef je synonymem pro typ iterator_traits<BidIt>::difference_type
; popisuje objekt, který může představovat rozdíl mezi libovolnými dvěma iterátory, které ukazují na prvky řízené sekvence.
match_results::empty
Testuje žádné podsložky.
bool empty() const;
Poznámky
Členová funkce vrátí hodnotu true pouze v případě, že hledání regulárního výrazu selhalo.
match_results::end
Určuje konec podsekvence.
const_iterator end() const;
Poznámky
Členová funkce vrátí iterátor, který odkazuje těsně za koncem sekvence.
match_results::format
Formátuje dílčí shody.
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 výstupního iterátoru.
out
Výstupní tok, do kterého se má zapisovat.
Fmt
Řetězec formátu.
vlajky
Příznaky formátu.
Poznámky
Každá členová funkce generuje formátovaný text pod kontrolou formátu fmt. První členová funkce zapíše formátovaný text do sekvence definované argumentem ven a vrátí hodnotu. Druhá členová funkce vrátí objekt řetězce, který obsahuje kopii formátovaného textu.
Chcete-li generovat formátovaný text. text literálu v řetězci formátu se obvykle kopíruje do cílové sekvence. Každá sekvence escape v řetězci formátu je nahrazena textem, který reprezentuje. Podrobnosti kopírování a nahrazování jsou ovládány příznaky formátu předanými funkci.
match_results::get_allocator
Vrátí uložený alokátor.
allocator_type get_allocator() const;
Poznámky
Členová funkce vrátí kopii objektu alokátoru používaného *this
k přidělení objektů sub_match
.
match_results::iterator
Typ iterátoru pro podsložky.
typedef const_iterator iterator;
Poznámky
Typ popisuje objekt, který může sloužit jako iterátor náhodného přístupu pro řízenou sekvenci.
match_results::length
Vrátí délku podsložky.
difference_type length(size_type sub = 0) const;
Parametry
pod
Index podsoučtu.
Poznámky
Členová funkce vrátí (*this)[sub].length()
.
match_results::match_results
Vytvoří objekt.
explicit match_results(const Alloc& alloc = Alloc());
match_results(const match_results& right);
Parametry
aloka
Objekt alokátoru, který se má uložit.
Vpravo
Objekt match_results, který chcete zkopírovat.
Poznámky
První konstruktor vytvoří match_results
objekt, který neobsahuje žádné podmatchy. Druhý konstruktor vytvoří match_results
objekt, který je kopií práva.
match_results::max_size
Získá největší počet podsoučtů.
size_type max_size() const;
Poznámky
Členová funkce vrátí délku nejdelší sekvence, kterou může objekt ovládat.
match_results::operator=
Zkopírujte objekt match_results.
match_results& operator=(const match_results& right);
Parametry
Vpravo
Objekt match_results, který chcete zkopírovat.
Poznámky
Operátor člena nahrazuje sekvenci řízenou *this
kopií sekvence řízené vpravo.
match_results::operator[]
Přístup k podobjektu
const_reference operator[](size_type n) const;
Parametry
n
Index podsoučtu
Poznámky
Členová funkce vrátí odkaz na prvek n řízené sekvence nebo odkaz na prázdný sub_match
objekt, pokud size() <= n
nebo pokud skupina zachycení n nebyla součástí shody.
match_results::p osition
Získání počátečního posunu podskupiny
difference_type position(size_type sub = 0) const;
Parametry
pod
Index podsoučtu
Poznámky
Členová funkce vrátí std::distance(prefix().first, (*this)[sub].first)
vzdálenost od prvního znaku v cílové sekvenci k prvnímu znaku v podmátce, na který odkazuje prvek n
řízené sekvence.
match_results::p refix
Získá sekvenci před prvním podsoučtem.
const_reference prefix() const;
Poznámky
Členová funkce vrátí odkaz na objekt typu sub_match<BidIt>
, který odkazuje na sekvenci znaků, která začíná na začátku cílové sekvence a končí na (*this)[0].first
, tj. odkazuje na text, který předchází odpovídající dílčí sekvenci.
match_results::reference
Typ odkazu na prvek.
typedef const_reference reference;
Poznámky
Typ je synonymem pro typ const_reference
.
match_results::size
Spočítá počet podsoučtů.
size_type size() const;
Poznámky
Členová funkce vrátí jeden více než počet skupin zachycení v regulárním výrazu, který byl použit pro hledání, nebo nulu, pokud nebylo provedeno žádné hledání.
match_results::size_type
Typ dílčího počtu.
typedef typename Alloc::size_type size_type;
Poznámky
Typ je synonymem pro typ Alloc::size_type
.
match_results::str
Vrátí podsložku.
string_type str(size_type sub = 0) const;
Parametry
pod
Index podsoučtu
Poznámky
Členová funkce vrátí string_type((*this)[sub])
.
match_results::string_type
Typ řetězce.
typedef basic_string<char_type> string_type;
Poznámky
Typ je synonymem pro typ basic_string<char_type>
.
match_results::suffix
Získá sekvenci po posledním podsoučtu.
const_reference suffix() const;
Poznámky
Členová funkce vrátí odkaz na objekt typu sub_match<BidIt>
, který odkazuje na sekvenci znaků začínající na (*this)[size() - 1].second
konci cílové sekvence a končí na konci cílové sekvence, tj. odkazuje na text, který následuje za odpovídajícím dílčím pořadím.
match_results::swap
Prohodí dva match_results objekty.
void swap(const match_results& right) throw();
Parametry
Vpravo
Objekt match_results, se kterým se má prohodit.
Poznámky
Členová funkce prohodí obsah konstantního *this
času a vpravo a nevyvolá výjimky.
match_results::value_type
Typ podsoučtu.
typedef sub_match<BidIt> value_type;
Poznámky
Typedef je synonymem pro typ sub_match<BidIt>
.