<regex>
, opérateurs
operator!=
operator>
operator>=
operator<
operator<<
operator<=
operator==
!=, opérateur
Comparaison « n’est pas égal à » entre plusieurs objets.
template <class BidIt>
bool operator!=(const sub_match<BidIt>& left,
const sub_match<BidIt>& right);
template <class BidIt, class IOtraits, class Alloc>
bool operator!=(
const basic_string<typename iterator_traits<BidIt>::value_type, IOtraits, Alloc>& left,
const sub_match<BidIt>& right);
template <class BidIt, class IOtraits, class Alloc>
bool operator!=(const sub_match<BidIt>& left,
const basic_string<typename iterator_traits<BidIt>::value_type, IOtraits, Alloc>& right);
template <class BidIt>
bool operator!=(const typename iterator_traits<BidIt>::value_type *left,
const sub_match<BidIt>& right);
template <class BidIt>
bool operator!=(const sub_match<BidIt>& left,
const typename iterator_traits<BidIt>::value_type *right);
template <class BidIt>
bool operator!=(const typename iterator_traits<BidIt>::value_type& left,
const sub_match<BidIt>& right);
template <class BidIt>
bool operator!=(const sub_match<BidIt>& left,
const typename iterator_traits<BidIt>::value_type& right);
template <class BidIt, class Alloc>
bool operator!=(const match_results<BidIt, Alloc>& left,
const match_results<BidIt, Alloc>& right);
Paramètres
BidIt
Type d'itérateur.
IOtraits
Classe de caractéristiques des chaînes.
Alloc
Classe allocator.
left
Objet de gauche à comparer.
right
Objet de droite à comparer.
Notes
Chaque opérateur de modèle retourne !(left == right)
.
Exemple
// std__regex__operator_ne.cpp
// compile with: /EHsc
#include <regex>
#include <iostream>
typedef std::cmatch::string_type Mystr;
int main()
{
std::regex rx("c(a*)|(b)");
std::cmatch mr;
std::regex_search("xcaaay", mr, rx);
std::csub_match sub = mr[1];
std::cout << "match == " << mr.str() << std::endl;
std::cout << "sub == " << sub << std::endl;
std::cout << std::endl;
std::cout << "match != match == " << std::boolalpha
<< (mr != mr) << std::endl;
std::cout << "sub != sub == " << std::boolalpha
<< (sub != sub) << std::endl;
std::cout << "string(\"aab\") != sub == " << std::boolalpha
<< (Mystr("aab") != sub) << std::endl;
std::cout << "sub != string(\"aab\") == " << std::boolalpha
<< (sub != Mystr("aab")) << std::endl;
std::cout << "\"aab\" != sub == " << std::boolalpha
<< ("aab" != sub) << std::endl;
std::cout << "sub != \"aab\" == " << std::boolalpha
<< (sub != "aab") << std::endl;
std::cout << "'a' != sub == " << std::boolalpha
<< ('a' != sub) << std::endl;
std::cout << "sub != 'a' == " << std::boolalpha
<< (sub != 'a') << std::endl;
return (0);
}
match == caaa
sub == aaa
match != match == false
sub != sub == false
string("aab") != sub == true
sub != string("aab") == true
"aab" != sub == true
sub != "aab" == true
'a' != sub == true
sub != 'a' == true
operator<
Comparaison « inférieur à » entre plusieurs objets.
template <class BidIt>
bool operator<(const sub_match<BidIt>& left,
const sub_match<BidIt>& right);
template <class BidIt, class IOtraits, class Alloc>
bool operator<(
const basic_string<typename iterator_traits<BidIt>::value_type, IOtraits, Alloc>& left,
const sub_match<BidIt>& right);
template <class BidIt, class IOtraits, class Alloc>
bool operator<(const sub_match<BidIt>& left,
const basic_string<typename iterator_traits<BidIt>::value_type, IOtraits, Alloc>& right);
template <class BidIt>
bool operator<(const typename iterator_traits<BidIt>::value_type *left,
const sub_match<BidIt>& right);
template <class BidIt>
bool operator<(const sub_match<BidIt>& left,
const typename iterator_traits<BidIt>::value_type *right);
template <class BidIt>
bool operator<(const typename iterator_traits<BidIt>::value_type& left,
const sub_match<BidIt>& right);
template <class BidIt>
bool operator<(const sub_match<BidIt>& left,
const typename iterator_traits<BidIt>::value_type& right);
Paramètres
BidIt
Type d'itérateur.
IOtraits
Classe de caractéristiques des chaînes.
Alloc
Classe allocator.
left
Objet de gauche à comparer.
right
Objet de droite à comparer.
Notes
Chaque opérateur de modèle convertit ses arguments en type de chaîne et retourne true uniquement si la valeur convertie de gauche est inférieure à la valeur convertie de droite.
Exemple
// std__regex__operator_lt.cpp
// compile with: /EHsc
#include <regex>
#include <iostream>
typedef std::cmatch::string_type Mystr;
int main()
{
std::regex rx("c(a*)|(b)");
std::cmatch mr;
std::regex_search("xcaaay", mr, rx);
std::csub_match sub = mr[1];
std::cout << "sub == " << sub << std::endl;
std::cout << std::endl;
std::cout << "sub < sub == " << std::boolalpha
<< (sub < sub) << std::endl;
std::cout << "string(\"aab\") < sub == " << std::boolalpha
<< (Mystr("aab") < sub) << std::endl;
std::cout << "sub < string(\"aab\") == " << std::boolalpha
<< (sub < Mystr("aab")) << std::endl;
std::cout << "\"aab\" < sub == " << std::boolalpha
<< ("aab" < sub) << std::endl;
std::cout << "sub < \"aab\" == " << std::boolalpha
<< (sub < "aab") << std::endl;
std::cout << "'a' < sub == " << std::boolalpha
<< ('a' < sub) << std::endl;
std::cout << "sub < 'a' == " << std::boolalpha
<< (sub < 'a') << std::endl;
return (0);
}
sub == aaa
sub < sub == false
string("aab") < sub == false
sub < string("aab") == true
"aab" < sub == false
sub < "aab" == true
'a' < sub == true
sub < 'a' == false
operator<<
Insère un sub_match dans un flux.
template <class Elem, class IOtraits, class Alloc, class BidIt>
basic_ostream<Elem, IOtraits>& operator<<(basic_ostream<Elem, IOtraits>& os,
const sub_match<BidIt>& right);
Paramètres
Elem
Type de l’élément.
IOtraits
Classe de caractéristiques des chaînes.
Alloc
Classe allocator.
BidIt
Type d'itérateur.
Os
Flux de sortie.
right
Objet à insérer.
Notes
L’opérateur de modèle retourne os << right.str()
.
Exemple
// std__regex__operator_ins.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::csub_match sub = mr[0];
std::cout << "whole match: " << sub << std::endl;
return (0);
}
whole match: caaa
operator<=
Comparaison « inférieur ou égal à » entre plusieurs objets.
template <class BidIt>
bool operator<=(const sub_match<BidIt>& left,
const sub_match<BidIt>& right);
template <class BidIt, class IOtraits, class Alloc>
bool operator<=(
const basic_string<typename iterator_traits<BidIt>::value_type, IOtraits, Alloc>& left,
const sub_match<BidIt>& right);
template <class BidIt, class IOtraits, class Alloc>
bool operator<=(const sub_match<BidIt>& left,
const basic_string<typename iterator_traits<BidIt>::value_type, IOtraits, Alloc>& right);
template <class BidIt>
bool operator<=(const typename iterator_traits<BidIt>::value_type *left,
const sub_match<BidIt>& right);
template <class BidIt>
bool operator<=(const sub_match<BidIt>& left,
const typename iterator_traits<BidIt>::value_type *right);
template <class BidIt>
bool operator<=(const typename iterator_traits<BidIt>::value_type& left,
const sub_match<BidIt>& right);
template <class BidIt>
bool operator<=(const sub_match<BidIt>& left,
const typename iterator_traits<BidIt>::value_type& right);
Paramètres
BidIt
Type d'itérateur.
IOtraits
Classe de caractéristiques des chaînes.
Alloc
Classe allocator.
left
Objet de gauche à comparer.
right
Objet de droite à comparer.
Notes
Chaque opérateur de modèle retourne !(right < left)
.
Exemple
// std__regex__operator_le.cpp
// compile with: /EHsc
#include <regex>
#include <iostream>
typedef std::cmatch::string_type Mystr;
int main()
{
std::regex rx("c(a*)|(b)");
std::cmatch mr;
std::regex_search("xcaaay", mr, rx);
std::csub_match sub = mr[1];
std::cout << "sub == " << sub << std::endl;
std::cout << std::endl;
std::cout << "sub <= sub == " << std::boolalpha
<< (sub <= sub) << std::endl;
std::cout << "string(\"aab\") <= sub == " << std::boolalpha
<< (Mystr("aab") <= sub) << std::endl;
std::cout << "sub <= string(\"aab\") == " << std::boolalpha
<< (sub <= Mystr("aab")) << std::endl;
std::cout << "\"aab\" <= sub == " << std::boolalpha
<< ("aab" <= sub) << std::endl;
std::cout << "sub <= \"aab\" == " << std::boolalpha
<< (sub <= "aab") << std::endl;
std::cout << "'a' <= sub == " << std::boolalpha
<< ('a' <= sub) << std::endl;
std::cout << "sub <= 'a' == " << std::boolalpha
<< (sub <= 'a') << std::endl;
return (0);
}
sub == aaa
sub <= sub == true
string("aab") <= sub == false
sub <= string("aab") == true
"aab" <= sub == false
sub <= "aab" == true
'a' <= sub == true
sub <= 'a' == false
operator==
Comparaison « est égal à » entre plusieurs objets.
template <class BidIt>
bool operator==(const sub_match<BidIt>& left,
const sub_match<BidIt>& right);
template <class BidIt, class IOtraits, class Alloc>
bool operator==(
const basic_string<typename iterator_traits<BidIt>::value_type, IOtraits, Alloc>& left,
const sub_match<BidIt>& right);
template <class BidIt, class IOtraits, class Alloc>
bool operator==(const sub_match<BidIt>& left,
const basic_string<typename iterator_traits<BidIt>::value_type, IOtraits, Alloc>& right);
template <class BidIt>
bool operator==(const typename iterator_traits<BidIt>::value_type* left,
const sub_match<BidIt>& right);
template <class BidIt>
bool operator==(const sub_match<BidIt>& left,
const typename iterator_traits<BidIt>::value_type* right);
template <class BidIt>
bool operator==(const typename iterator_traits<BidIt>::value_type& left,
const sub_match<BidIt>& right);
template <class BidIt>
bool operator==(const sub_match<BidIt>& left,
const typename iterator_traits<BidIt>::value_type& right);
template <class BidIt, class Alloc>
bool operator==(const match_results<BidIt, Alloc>& left,
const match_results<BidIt, Alloc>& right);
Paramètres
BidIt
Type d'itérateur.
IOtraits
Classe de caractéristiques des chaînes.
Alloc
Classe allocator.
left
Objet de gauche à comparer.
right
Objet de droite à comparer.
Notes
Chaque opérateur de modèle convertit chacun de ses arguments en type chaîne et retourne le résultat de la comparaison d’égalité entre les objets convertis.
Quand un opérateur de modèle convertit ses arguments en type chaîne, il utilise la première des transformations suivantes qui s’applique :
arguments dont les types sont une spécialisation du modèle match_results
de classe ou sub_match
sont convertis en appelant la str
fonction membre ;
arguments dont les types sont une spécialisation du modèle basic_string
de classe sont inchangés ;
tous les autres types d’arguments sont convertis en passant la valeur d’argument au constructeur pour une spécialisation appropriée du modèle basic_string
de classe.
Exemple
// std__regex__operator_eq.cpp
// compile with: /EHsc
#include <regex>
#include <iostream>
typedef std::cmatch::string_type Mystr;
int main()
{
std::regex rx("c(a*)|(b)");
std::cmatch mr;
std::regex_search("xcaaay", mr, rx);
std::csub_match sub = mr[1];
std::cout << "match == " << mr.str() << std::endl;
std::cout << "sub == " << sub << std::endl;
std::cout << std::endl;
std::cout << "match == match == " << std::boolalpha
<< (mr == mr) << std::endl;
std::cout << "sub == sub == " << std::boolalpha
<< (sub == sub) << std::endl;
std::cout << "string(\"aab\") == sub == " << std::boolalpha
<< (Mystr("aab") == sub) << std::endl;
std::cout << "sub == string(\"aab\") == " << std::boolalpha
<< (sub == Mystr("aab")) << std::endl;
std::cout << "\"aab\" == sub == " << std::boolalpha
<< ("aab" == sub) << std::endl;
std::cout << "sub == \"aab\" == " << std::boolalpha
<< (sub == "aab") << std::endl;
std::cout << "'a' == sub == " << std::boolalpha
<< ('a' == sub) << std::endl;
std::cout << "sub == 'a' == " << std::boolalpha
<< (sub == 'a') << std::endl;
return (0);
}
match == caaa
sub == aaa
match == match == true
sub == sub == true
string("aab") == sub == false
sub == string("aab") == false
"aab" == sub == false
sub == "aab" == false
'a' == sub == false
sub == 'a' == false
operator>
Comparaison « supérieur à » entre plusieurs objets.
template <class BidIt>
bool operator>(const sub_match<BidIt>& left,
const sub_match<BidIt>& right);
template <class BidIt, class IOtraits, class Alloc>
bool operator>(
const basic_string<typename iterator_traits<BidIt>::value_type, IOtraits, Alloc>& left,
const sub_match<BidIt>& right);
template <class BidIt, class IOtraits, class Alloc>
bool operator>(const sub_match<BidIt>& left,
const basic_string<typename iterator_traits<BidIt>::value_type, IOtraits, Alloc>& right);
template <class BidIt>
bool operator>(const typename iterator_traits<BidIt>::value_type *left,
const sub_match<BidIt>& right);
template <class BidIt>
bool operator>(const sub_match<BidIt>& left,
const typename iterator_traits<BidIt>::value_type *right);
template <class BidIt>
bool operator>(const typename iterator_traits<BidIt>::value_type& left,
const sub_match<BidIt>& right);
template <class BidIt>
bool operator>(const sub_match<BidIt>& left,
const typename iterator_traits<BidIt>::value_type& right);
Paramètres
BidIt
Type d'itérateur.
IOtraits
Classe de caractéristiques des chaînes.
Alloc
Classe allocator.
left
Objet de gauche à comparer.
right
Objet de droite à comparer.
Notes
Chaque opérateur de modèle retourne right < left
.
Exemple
// std__regex__operator_gt.cpp
// compile with: /EHsc
#include <regex>
#include <iostream>
typedef std::cmatch::string_type Mystr;
int main()
{
std::regex rx("c(a*)|(b)");
std::cmatch mr;
std::regex_search("xcaaay", mr, rx);
std::csub_match sub = mr[1];
std::cout << "sub == " << sub << std::endl;
std::cout << std::endl;
std::cout << "sub > sub == " << std::boolalpha
<< (sub > sub) << std::endl;
std::cout << "string(\"aab\") > sub == " << std::boolalpha
<< (Mystr("aab") > sub) << std::endl;
std::cout << "sub > string(\"aab\") == " << std::boolalpha
<< (sub > Mystr("aab")) << std::endl;
std::cout << "\"aab\" > sub == " << std::boolalpha
<< ("aab" > sub) << std::endl;
std::cout << "sub > \"aab\" == " << std::boolalpha
<< (sub > "aab") << std::endl;
std::cout << "'a' > sub == " << std::boolalpha
<< ('a' > sub) << std::endl;
std::cout << "sub > 'a' == " << std::boolalpha
<< (sub > 'a') << std::endl;
return (0);
}
sub == aaa
sub > sub == false
string("aab") > sub == true
sub > string("aab") == false
"aab" > sub == true
sub > "aab" == false
'a' > sub == false
sub > 'a' == true
operator>=
Comparaison « supérieur ou égal à » entre plusieurs objets.
template <class BidIt>
bool operator>=(const sub_match<BidIt>& left,
const sub_match<BidIt>& right);
template <class BidIt, class IOtraits, class Alloc>
bool operator>=(
const basic_string<typename iterator_traits<BidIt>::value_type, IOtraits, Alloc>& left,
const sub_match<BidIt>& right);
template <class BidIt, class IOtraits, class Alloc>
bool operator>=(const sub_match<BidIt>& left,
const basic_string<typename iterator_traits<BidIt>::value_type, IOtraits, Alloc>& right);
template <class BidIt>
bool operator>=(const typename iterator_traits<BidIt>::value_type *left,
const sub_match<BidIt>& right);
template <class BidIt>
bool operator>=(const sub_match<BidIt>& left,
const typename iterator_traits<BidIt>::value_type *right);
template <class BidIt>
bool operator>=(const typename iterator_traits<BidIt>::value_type& left,
const sub_match<BidIt>& right);
template <class BidIt>
bool operator>=(const sub_match<BidIt>& left,
const typename iterator_traits<BidIt>::value_type& right);
Paramètres
BidIt
Type d'itérateur.
IOtraits
Classe de caractéristiques des chaînes.
Alloc
Classe allocator.
left
Objet de gauche à comparer.
right
Objet de droite à comparer.
Notes
Chaque opérateur de modèle retourne !(left < right)
.
Exemple
// std__regex__operator_ge.cpp
// compile with: /EHsc
#include <regex>
#include <iostream>
typedef std::cmatch::string_type Mystr;
int main()
{
std::regex rx("c(a*)|(b)");
std::cmatch mr;
std::regex_search("xcaaay", mr, rx);
std::csub_match sub = mr[1];
std::cout << "sub == " << sub << std::endl;
std::cout << std::endl;
std::cout << "sub >= sub == " << std::boolalpha
<< (sub >= sub) << std::endl;
std::cout << "string(\"aab\") >= sub == " << std::boolalpha
<< (Mystr("aab") >= sub) << std::endl;
std::cout << "sub >= string(\"aab\") == " << std::boolalpha
<< (sub >= Mystr("aab")) << std::endl;
std::cout << "\"aab\" >= sub == " << std::boolalpha
<< ("aab" >= sub) << std::endl;
std::cout << "sub >= \"aab\" == " << std::boolalpha
<< (sub >= "aab") << std::endl;
std::cout << "'a' >= sub == " << std::boolalpha
<< ('a' >= sub) << std::endl;
std::cout << "sub >= 'a' == " << std::boolalpha
<< (sub >= 'a') << std::endl;
return (0);
}
sub == aaa
sub >= sub == true
string("aab") >= sub == true
sub >= string("aab") == false
"aab" >= sub == true
sub >= "aab" == false
'a' >= sub == false
sub >= 'a' == true
Voir aussi
<regex>
regex_constants, classe
regex_error, classe
<fonctions regex>
regex_iterator, classe
regex_token_iterator, classe
regex_traits, classe
<regex> typedefs