#include
<regex>
bool regex_match(const string& s, const regex& e, match_flag_type flags = match_default) bool regex_match(const string& s, smatch& m, const regex& e, match_flag_type flags = match_default) bool regex_match(Bi first, Bi last, const regex& e, match_flag_type flags = match_default) bool regex_match(Bi first, Bi last, smatch& m, const regex& e, match_flag_type flags = match_default)
Findet Übereinstimmungen der Zeichenkette s
mit dem regulären Ausdruck e
.
Iteratorpaare der übereinstimmenden Teilbereiche werden im Container m
abgelegt.
Die Funktionen sind als Schablonen definiert. Neben den hier angegebenen existieren Varianten für char
-Felder (mit cmatch
) und std::wstring
(wmatch
).
first , last | Iteratorbereich in Zeichenkette |
s | zu durchmusternde Zeichenkette |
m | smatch nimmt Übereinstimmungen auf |
e | regulärer Ausdruck |
flags | Optionen für die Durchmusterung |
Optionen der Durchmusterung sind in std::regex_constants definiert.
Rückgabewert: true
, wenn Übereinstimmung gefunden.
#include <iostream> #include <string> #include <regex> int main() { std::string expr = "", s = ""; std::smatch matches; if (std::regex_match(s, matches, std::regex(expr))) { // matches[0] contains the original string. // matches[n] contains a sub_match object for each matching subexpression for (auto i = 0; i < matches.size(); ++i) { // sub_match is pair of iterators to the first // and one past the last chars of the matching subexpression // (matches[i].first, matches[i].second); std::string match = matches[i]; std::cout << "\tmatches[" << i << "] = " << match << '\n'; } } else std::cout << "The regexp \"" << expr << "\" does not match \"" << s << "\"\n"; }