Classe match_results
Contiene una sequenza delle sottocorrispondenze.
Sintassi
template <class BidIt, class Alloc>
class match_results
Parametri
BidIt
Tipo di iteratore per le sottocorrispondenze.
Alloc
Tipo di un allocatore per gestire l'archiviazione.
Osservazioni:
Il modello di classe descrive un oggetto che controlla una sequenza non modificabile di elementi di tipo sub_match<BidIt>
generato da una ricerca di espressioni regolari. Ogni elemento punta alla sottosequenza corrispondente al gruppo Capture corrispondente a tale elemento.
Costruttori
Costruttore | Descrizione |
---|---|
match_results | Costruisce l'oggetto. |
Typedef
Nome tipo | Descrizione |
---|---|
allocator_type | Tipo di un allocatore per gestire l'archiviazione. |
char_type | Tipo di un elemento. |
const_iterator | Tipo di iteratore const per le sottocorrispondenze. |
const_reference | Il tipo di un riferimento const dell'elemento. |
difference_type | Tipo di differenza iteratore. |
iterator | Tipo di iteratore per le sottocorrispondenze. |
reference | Tipo di un riferimento dell'elemento. |
size_type | Tipo di un conteggio delle sottocorrispondenze. |
string_type | Tipo di una stringa. |
value_type | Tipo di una sottocorrispondenza. |
Funzioni membro
Funzione membro | Descrizione |
---|---|
begin | Definisce l'inizio di una sequenza di sottocorrispondenze. |
empty | Verifica che non siano presenti sottocorrispondenze. |
end | Definisce la fine di una sequenza di sottocorrispondenze. |
format | Formatta le sottocorrispondenze. |
get_allocator | Restituisce l'allocatore archiviato. |
length | Restituisce la lunghezza di una sottocorrispondenza. |
max_size | Ottiene il numero massimo delle sottocorrispondenze. |
position | Ottiene l'offset iniziale di un sottogruppo. |
prefix | Ottiene la sequenza prima della prima sottocorrispondenza. |
size | Conteggia il numero di sottocorrispondenze. |
str | Restituisce una sottocorrispondenza. |
suffix | Ottiene la sequenza dopo l'ultima sottocorrispondenza. |
swap | Scambia due oggetti match_results. |
Operatori
Operatore | Descrizione |
---|---|
operator= | Copia un oggetto match_results. |
operator[] | Accede a un oggetto secondario. |
Requisiti
Header:<regex>
Spazio dei nomi: std
Esempio
// 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
Tipo di un allocatore per gestire l'archiviazione.
typedef Alloc allocator_type;
Osservazioni:
Typedef è un sinonimo dell'argomento modello Alloc.
match_results::begin
Definisce l'inizio di una sequenza di sottocorrispondenze.
const_iterator begin() const;
Osservazioni:
La funzione membro restituisce un iteratore di accesso casuale che punta al primo elemento della sequenza (o appena oltre la fine di una sequenza vuota).
match_results::char_type
Tipo di un elemento.
typedef typename iterator_traits<BidIt>::value_type char_type;
Osservazioni:
typedef è un sinonimo del tipo iterator_traits<BidIt>::value_type
, che corrisponde al tipo di elemento della sequenza di caratteri cercata.
match_results::const_iterator
Tipo di iteratore const per le sottocorrispondenze.
typedef T0 const_iterator;
Osservazioni:
typedef descrive un oggetto che può essere usato come iteratore ad accesso casuale costante per la sequenza controllata.
match_results::const_reference
Il tipo di un riferimento const dell'elemento.
typedef const typename Alloc::const_reference const_reference;
Osservazioni:
Typedef descrive un oggetto che può essere usato come riferimento costante a un elemento della sequenza controllata.
match_results::d ifference_type
Tipo di differenza iteratore.
typedef typename iterator_traits<BidIt>::difference_type difference_type;
Osservazioni:
typedef è un sinonimo del tipo iterator_traits<BidIt>::difference_type
; descrive un oggetto che può rappresentare la differenza tra due iteratori che puntano a elementi della sequenza controllata.
match_results::empty
Verifica che non siano presenti sottocorrispondenze.
bool empty() const;
Osservazioni:
La funzione membro restituisce true solo se la ricerca di espressioni regolari non riesce.
match_results::end
Definisce la fine di una sequenza di sottocorrispondenze.
const_iterator end() const;
Osservazioni:
La funzione membro restituisce un iteratore che punta poco oltre la fine della sequenza.
match_results::format
Formatta le sottocorrispondenze.
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;
Parametri
OutIt
Tipo di iteratore di output.
out
Flusso di output in cui scrivere.
Fmt
Stringa di formato.
flags
Flag di formato.
Osservazioni:
Ogni funzione membro genera testo formattato sotto il controllo del formato fmt. La prima funzione membro scrive il testo formattato nella sequenza definita dal relativo argomento e restituisce . La seconda funzione membro restituisce un oggetto stringa contenente una copia del testo formattato.
Per generare testo formattato, il testo letterale della stringa di formato viene in genere copiato nella sequenza di destinazione. Ogni sequenza di escape della stringa di formato viene sostituita con il testo da essa rappresentato. I dettagli delle operazioni di copia e sostituzione vengono controllati dai flag di formato passati alla funzione.
match_results::get_allocator
Restituisce l'allocatore archiviato.
allocator_type get_allocator() const;
Osservazioni:
La funzione membro restituisce una copia dell'oggetto allocatore usato da *this
per allocare i relativi oggetti sub_match
.
match_results::iterator
Tipo di iteratore per le sottocorrispondenze.
typedef const_iterator iterator;
Osservazioni:
Il tipo descrive un oggetto che può essere usato come iteratore ad accesso casuale per la sequenza controllata.
match_results::length
Restituisce la lunghezza di una sottocorrispondenza.
difference_type length(size_type sub = 0) const;
Parametri
sub
Indice della sottocorrispondenza.
Osservazioni:
La funzione membro restituisce(*this)[sub].length()
.
match_results::match_results
Costruisce l'oggetto.
explicit match_results(const Alloc& alloc = Alloc());
match_results(const match_results& right);
Parametri
alloc
Oggetto allocatore da archiviare.
right
Oggetto match_results da copiare.
Osservazioni:
Il primo costruttore crea un oggetto match_results
che non contiene sottocorrispondenze. Il secondo costruttore costruisce un match_results
oggetto che è una copia di destra.
match_results::max_size
Ottiene il numero massimo delle sottocorrispondenze.
size_type max_size() const;
Osservazioni:
La funzione membro restituisce la lunghezza della sequenza più lunga che l'oggetto può controllare.
match_results::operator=
Copia un oggetto match_results.
match_results& operator=(const match_results& right);
Parametri
right
Oggetto match_results da copiare.
Osservazioni:
L'operatore membro sostituisce la sequenza controllata da *this
con una copia della sequenza controllata da destra.
match_results::operator[]
Accede a un oggetto secondario.
const_reference operator[](size_type n) const;
Parametri
n
Indice della sottocorrispondenza.
Osservazioni:
La funzione membro restituisce un riferimento all'elemento n della sequenza controllata o un riferimento a un oggetto vuoto sub_match
se size() <= n
o se il gruppo di acquisizione n non fa parte della corrispondenza.
match_results::p osition
Ottiene l'offset iniziale di un sottogruppo.
difference_type position(size_type sub = 0) const;
Parametri
sub
Indice della sottocorrispondenza.
Osservazioni:
La funzione membro restituisce std::distance(prefix().first, (*this)[sub].first)
, ovvero la distanza tra il primo carattere della sequenza di destinazione e il primo carattere nella sottocorrispondenza a cui punta l'elemento n
della sequenza controllata.
match_results::p fix
Ottiene la sequenza prima della prima sottocorrispondenza.
const_reference prefix() const;
Osservazioni:
La funzione membro restituisce un riferimento a un oggetto di tipo sub_match<BidIt>
che punta alla sequenza di caratteri che inizia a partire dalla sequenza di destinazione e termina in corrispondenza di (*this)[0].first
, ovvero punta al testo che precede la sottosequenza corrispondente.
match_results::reference
Tipo di un riferimento dell'elemento.
typedef const_reference reference;
Osservazioni:
type è un sinonimo del tipo const_reference
.
match_results::size
Conteggia il numero di sottocorrispondenze.
size_type size() const;
Osservazioni:
La funzione membro restituisce una corrispondenza più rispetto al numero di gruppi Capture nell'espressione regolare usata per la ricerca oppure zero se non è stata eseguita alcuna ricerca.
match_results::size_type
Tipo di un conteggio delle sottocorrispondenze.
typedef typename Alloc::size_type size_type;
Osservazioni:
type è un sinonimo del tipo Alloc::size_type
.
match_results::str
Restituisce una sottocorrispondenza.
string_type str(size_type sub = 0) const;
Parametri
sub
Indice della sottocorrispondenza.
Osservazioni:
La funzione membro restituiscestring_type((*this)[sub])
.
match_results::string_type
Tipo di una stringa.
typedef basic_string<char_type> string_type;
Osservazioni:
type è un sinonimo del tipo basic_string<char_type>
.
match_results::suffisso
Ottiene la sequenza dopo l'ultima sottocorrispondenza.
const_reference suffix() const;
Osservazioni:
La funzione membro restituisce un riferimento a un oggetto di tipo sub_match<BidIt>
che punta alla sequenza di caratteri che inizia a partire da (*this)[size() - 1].second
e termina alla fine della sequenza di destinazione, ovvero punta al testo che segue la sottosequenza corrispondente.
match_results::swap
Scambia due oggetti match_results.
void swap(const match_results& right) throw();
Parametri
right
Oggetto match_results con cui effettuare lo scambio.
Osservazioni:
La funzione membro scambia il contenuto di *this
e destra nel tempo costante e non genera eccezioni.
match_results::value_type
Tipo di una sottocorrispondenza.
typedef sub_match<BidIt> value_type;
Osservazioni:
typedef è un sinonimo del tipo sub_match<BidIt>
.