Sdílet prostřednictvím


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>.

Viz také

<regex>