Partager via


match_results, classe

Contient une séquence de sous-correspondances.

Syntaxe

template <class BidIt, class Alloc>
class match_results

Paramètres

BidIt
Type d'itérateur pour les sous-correspondances.

Alloc
Type d'un allocateur pour la gestion du stockage.

Notes

Le modèle de classe décrit un objet qui contrôle une séquence non modifiable d’éléments de type sub_match<BidIt> générés par une recherche d’expression régulière. Chaque élément pointe vers la sous-séquence qui correspond au groupe de capture correspondant à cet élément.

Constructeurs

Constructeur Description
match_results Construit l’objet.

Typedefs

Nom de type Description
allocator_type Type d'un allocateur pour la gestion du stockage.
char_type Type d’un élément.
const_iterator Type d’itérateur const pour les sous-correspondances.
const_reference Type d'une référence constante d'élément.
difference_type Type d’une différence d’itérateur.
iterator Type d'itérateur pour les sous-correspondances.
reference Type d’une référence d’élément.
size_type Type d’un nombre de sous-correspondances.
string_type Type d’une chaîne.
value_type Type d’une sous-correspondance.

Fonctions Membre

Fonction membre Description
begin Désigne le début de la séquence de sous-correspondance.
empty Vérifie l’absence de sous-correspondances.
end Désigne la fin de la séquence de sous-correspondance.
format Met en forme les sous-correspondances.
get_allocator Retourne l'allocateur stocké.
length Retourne la longueur d’une sous-correspondance.
max_size Obtient le plus grand nombre de sous-correspondances.
position Obtenez l’offset de démarrage d’un sous-groupe.
prefix Obtient la séquence avant la première sous-correspondance.
size Compte le nombre de sous-correspondances.
str Retourne une sous-correspondance.
suffix Obtient la séquence après la dernière sous-correspondance.
swap Échange deux objets match_results.

Opérateurs

Opérateur Description
operator= Copier un objet match_results.
operator[] Accédez à un sous-objet.

Spécifications

Header :<regex>

Espace de noms : std

Exemple

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

Type d'un allocateur pour la gestion du stockage.

typedef Alloc allocator_type;

Notes

Typedef est un synonyme de l’argument De modèle Alloc.

match_results ::begin

Désigne le début de la séquence de sous-correspondance.

const_iterator begin() const;

Notes

La fonction membre retourne un itérateur d’accès aléatoire qui pointe vers le premier élément de la séquence (ou juste après la fin d’une séquence vide).

match_results ::char_type

Type d’un élément.

typedef typename iterator_traits<BidIt>::value_type char_type;

Notes

Le typedef est un synonyme du type iterator_traits<BidIt>::value_type, qui est le type d’élément de la séquence de caractères recherchée.

match_results ::const_iterator

Type d’itérateur const pour les sous-correspondances.

typedef T0 const_iterator;

Notes

Le typedef décrit un objet pouvant servir d’itérateur à accès aléatoire de constante pour la séquence contrôlée.

match_results ::const_reference

Type d'une référence constante d'élément.

typedef const typename Alloc::const_reference const_reference;

Notes

Le typedef décrit un objet pouvant servir de référence constante à un élément de la séquence contrôlée.

match_results ::d ifference_type

Type d’une différence d’itérateur.

typedef typename iterator_traits<BidIt>::difference_type difference_type;

Notes

Le typedef est un synonyme du type iterator_traits<BidIt>::difference_type. Il décrit un objet capable de représenter la différence entre deux itérateurs qui pointent vers des éléments de la séquence contrôlée.

match_results ::empty

Vérifie l’absence de sous-correspondances.

bool empty() const;

Notes

La fonction membre retourne true uniquement en cas d’échec de la recherche d’expression régulière.

match_results ::end

Désigne la fin de la séquence de sous-correspondance.

const_iterator end() const;

Notes

La fonction membre retourne un itérateur qui pointe juste après la fin de la séquence.

match_results ::format

Met en forme les sous-correspondances.

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;

Paramètres

OutIt
Type d'itérateur de sortie.

out
Flux de sortie dans lequel écrire.

Fmt
Chaîne de format.

flags
Indicateurs de format.

Notes

Chaque fonction membre génère du texte mis en forme sous le contrôle du format fmt. La première fonction membre écrit le texte mis en forme dans la séquence définie par son argument et retourne. La deuxième fonction membre retourne un objet de chaîne contenant une copie du texte mis en forme.

Pour générer du texte mis en forme, le texte littéral dans la chaîne de format est habituellement copié dans la séquence cible. Chaque séquence d'échappement dans la chaîne de format est remplacée par le texte qu'elle représente. Les détails de la copie et du remplacement sont contrôlés par les indicateurs de format transmis à la fonction.

match_results ::get_allocator

Retourne l'allocateur stocké.

allocator_type get_allocator() const;

Notes

La fonction membre retourne une copie de l'objet allocateur utilisé par *this pour allouer ses objets sub_match.

match_results ::iterator

Type d'itérateur pour les sous-correspondances.

typedef const_iterator iterator;

Notes

Le type décrit un objet pouvant servir d'itérateur à accès aléatoire pour la séquence contrôlée.

match_results ::length

Retourne la longueur d’une sous-correspondance.

difference_type length(size_type sub = 0) const;

Paramètres

sub
Index de la sous-correspondance.

Notes

La fonction membre retourne (*this)[sub].length().

match_results ::match_results

Construit l’objet.

explicit match_results(const Alloc& alloc = Alloc());

match_results(const match_results& right);

Paramètres

Alloc
Objet allocateur à stocker.

right
Objet match_results à copier.

Notes

Le premier constructeur construit un objet match_results qui ne contient aucune sous-correspondance. Le deuxième constructeur construit un match_results objet qui est une copie de droite.

match_results ::max_size

Obtient le plus grand nombre de sous-correspondances.

size_type max_size() const;

Notes

La fonction membre retourne la longueur de la séquence la plus longue que l'objet peut contrôler.

match_results ::operator=

Copier un objet match_results.

match_results& operator=(const match_results& right);

Paramètres

right
Objet match_results à copier.

Notes

L’opérateur membre remplace la séquence contrôlée par *this une copie de la séquence contrôlée par le droit.

match_results ::operator[]

Accédez à un sous-objet.

const_reference operator[](size_type n) const;

Paramètres

n
Index de la sous-correspondance.

Notes

La fonction membre retourne une référence à l’élément n de la séquence contrôlée, ou une référence à un objet vide sub_match si size() <= n ou si le groupe de capture n’a pas fait partie de la correspondance.

match_results ::p osition

Obtenez l’offset de démarrage d’un sous-groupe.

difference_type position(size_type sub = 0) const;

Paramètres

sub
Index de la sous-correspondance.

Notes

La fonction membre retourne std::distance(prefix().first, (*this)[sub].first), c’est-à-dire la distance entre le premier caractère de la séquence cible et le premier caractère de la sous-correspondance vers laquelle pointe l’élément n de la séquence contrôlée.

match_results ::p refix

Obtient la séquence avant la première sous-correspondance.

const_reference prefix() const;

Notes

La fonction membre retourne une référence à un objet de type sub_match<BidIt> qui pointe vers la séquence de caractères qui commence au début de la séquence cible et qui se termine à (*this)[0].first, c’est-à-dire qu’il pointe vers le texte qui précède la sous-séquence correspondante.

match_results ::reference

Type d’une référence d’élément.

typedef const_reference reference;

Notes

Le type est un synonyme du type const_reference.

match_results ::size

Compte le nombre de sous-correspondances.

size_type size() const;

Notes

La fonction membre retourne le nombre de groupes de capture plus un dans l’expression régulière utilisée pour la recherche, ou zéro si aucune recherche n’a été effectuée.

match_results ::size_type

Type d’un nombre de sous-correspondances.

typedef typename Alloc::size_type size_type;

Notes

Le type est un synonyme du type Alloc::size_type.

match_results ::str

Retourne une sous-correspondance.

string_type str(size_type sub = 0) const;

Paramètres

sub
Index de la sous-correspondance.

Notes

La fonction membre retourne string_type((*this)[sub]).

match_results ::string_type

Type d’une chaîne.

typedef basic_string<char_type> string_type;

Notes

Le type est un synonyme du type basic_string<char_type>.

match_results ::suffixe

Obtient la séquence après la dernière sous-correspondance.

const_reference suffix() const;

Notes

La fonction membre retourne une référence à un objet de type sub_match<BidIt> , qui pointe vers la séquence de caractères qui commence à (*this)[size() - 1].second et qui se termine à la fin de la séquence cible. En d’autres termes, il pointe vers le texte qui suit la sous-séquence correspondante.

match_results ::swap

Échange deux objets match_results.

void swap(const match_results& right) throw();

Paramètres

right
Objet match_results à échanger.

Notes

La fonction membre échange le contenu et *thisle droit dans le temps constant et ne lève pas d’exceptions.

match_results ::value_type

Type d’une sous-correspondance.

typedef sub_match<BidIt> value_type;

Notes

Le typedef est un synonyme du type sub_match<BidIt>.

Voir aussi

<regex>