Udostępnij za pośrednictwem


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

Zobacz też

<regex>