kennen:lib:regex_search
Inhaltsverzeichnis
regex_search()
#include
<regex>
bool regex_search(const string& s, const regex& e, match_flag_type flags = match_default) bool regex_search(const string& s, smatch& m, const regex& e, match_flag_type flags = match_default) bool regex_search(Bi first, Bi last, const regex& e, match_flag_type flags = match_default) bool regex_search(Bi first, Bi last, smatch& m, const regex& e, match_flag_type flags = match_default)
Ersetzt Übereinstimmungen eines Zeichenbereiches [first,last) bzw. der Zeichenkette s
mit dem regulären Ausdruck e
durch den Inhalt der Zeichenkette fmt
.
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 und std::wstring
.
Parameter
first , last | Iteratorbereich in Zeichenkette |
s | zu durchmusternde Zeichenkette |
fmt | einzusetzende Zeichenfolge |
e | regulärer Ausdruck |
flags | Optionen für die Durchmusterung |
Optionen der Durchmusterung sind in std::regex_constants definiert.
Ergebnis
Rückgabewert: Zeichenkette bzw. Iterator auf das Ende des Bereiches mit der umgewandelten Zeichenfolge.
Siehe auch
Beispiel
- regex_search.cpp
#include <iostream> #include <string> #include <regex> int main() { std::string s = "Hallo, Welt! Das ist ein Text"; std::regex rex("Welt"); std::cout << std::regex_search(begin(s), end(s), rex) << '\n'; s = "13.11.2011"; rex = std::regex("(\\d{1,2})\\.(\\d{1,2})\\.(\\d{4}|\\d{2})"); std::smatch result; if (std::regex_search(s, result, rex)) for (auto i = 0; i < result.size(); ++i) { std::cout << i << '\t' << result[i] << '\n'; } else std::cout << "no match\n"; }
kennen/lib/regex_search.txt · Zuletzt geändert: 2019-11-20 16:10 von 127.0.0.1