Standard library header <regex> (C++11)
From cppreference.net
Dieser Header ist Teil der Textverarbeitungsbibliothek .
Includes |
|
|
(C++20)
|
Unterstützung für den Drei-Wege-Vergleichsoperator |
|
(C++11)
|
std::initializer_list Klassentemplate |
Klassen |
|
|
(C++11)
|
Regulärer Ausdruck-Objekt
(Klassentemplate) |
| std::regex | std:: basic_regex < char > (Typedef) |
| std::wregex | std:: basic_regex < wchar_t > (Typedef) |
|
(C++11)
|
identifiziert die Zeichensequenz, die von einem Teilausdruck übereinstimmt
(Klassentemplate) |
| std::csub_match | std:: sub_match < const char * > (Typedef) |
| std::wcsub_match | std:: sub_match < const wchar_t * > (Typedef) |
| std::ssub_match | std:: sub_match < std :: string :: const_iterator > (Typedef) |
| std::wssub_match | std:: sub_match < std :: wstring :: const_iterator > (Typedef) |
|
(C++11)
|
identifiziert einen regulären Ausdrucks-Treffer, einschließlich aller Teilausdrucks-Treffer
(Klassentemplate) |
| std::cmatch | std:: match_results < const char * > (Typedef) |
| std::wcmatch | std:: match_results < const wchar_t * > (Typedef) |
| std::smatch | std:: match_results < std :: string :: const_iterator > (Typedef) |
| std::wsmatch | std:: match_results < std :: wstring :: const_iterator > (Typedef) |
|
(C++11)
|
durchläuft alle Regex-Treffer innerhalb einer Zeichensequenz
(Klassentemplate) |
| std::cregex_iterator | std:: regex_iterator < const char * > (Typedef) |
| std::wcregex_iterator | std:: regex_iterator < const wchar_t * > (Typedef) |
| std::sregex_iterator | std:: regex_iterator < std :: string :: const_iterator > (Typedef) |
| std::wsregex_iterator | std:: regex_iterator < std :: wstring :: const_iterator > (Typedef) |
|
(C++11)
|
durchläuft die angegebenen Teilausdrücke innerhalb aller Regex-Treffer in einem gegebenen String oder durch nicht übereinstimmende Teilstrings
(Klassentemplate) |
| std::cregex_token_iterator | std:: regex_token_iterator < const char * > (Typedef) |
| std::wcregex_token_iterator | std:: regex_token_iterator < const wchar_t * > (Typedef) |
| std::sregex_token_iterator | std:: regex_token_iterator < std :: string :: const_iterator > (Typedef) |
| std::wsregex_token_iterator | std:: regex_token_iterator < std :: wstring :: const_iterator > (Typedef) |
|
(C++11)
|
meldet Fehler, die von der regulären Ausdrücke-Bibliothek generiert werden
(Klasse) |
|
(C++11)
|
stellt Metainformationen über einen Zeichentyp bereit, die von der Regex-Bibliothek benötigt werden
(Klassentemplate) |
Regex-Konstantentypen |
|
|
Definiert im namespace
std::regex_constants
|
|
|
(C++11)
|
Allgemeine Optionen zur Steuerung des Regex-Verhaltens
(typedef) |
|
(C++11)
|
Optionen spezifisch für das Matching
(typedef) |
|
(C++11)
|
beschreibt verschiedene Arten von Übereinstimmungsfehlern
(typedef) |
Funktionen |
|
Algorithmus |
|
|
(C++11)
|
versucht, einen regulären Ausdruck auf eine gesamte Zeichensequenz abzubilden
(Funktionsschablone) |
|
(C++11)
|
versucht, einen regulären Ausdruck mit einem beliebigen Teil einer Zeichensequenz abzugleichen
(Funktionsschablone) |
|
(C++11)
|
ersetzt Vorkommen eines regulären Ausdrucks mit formatiertem Ersetzungstext
(Funktionsschablone) |
Nicht-Member-Operationen |
|
|
(C++11)
|
spezialisiert den
std::swap
Algorithmus
(Funktionsschablone) |
|
(entfernt in C++20)
(entfernt in C++20)
(entfernt in C++20)
(entfernt in C++20)
(entfernt in C++20)
(C++20)
|
vergleicht einen
sub_match
mit einem anderen
sub_match
, einem String oder einem Zeichen
(Funktions-Template) |
|
gibt die übereinstimmende Zeichenfolge aus
(Funktionsschablone) |
|
|
(entfernt in C++20)
|
vergleicht die Werte in den beiden Übereinstimmungsergebnissen lexikographisch
(Funktionsschablone) |
|
(C++11)
|
spezialisiert den
std::swap
Algorithmus
(Funktionsschablone) |
Bereichszugriff |
|
|
(C++11)
(C++14)
|
gibt einen Iterator zum Anfang eines Containers oder Arrays zurück
(Funktions-Template) |
|
(C++11)
(C++14)
|
gibt einen Iterator zum Ende eines Containers oder Arrays zurück
(Funktions-Template) |
|
(C++14)
|
gibt einen Reverse-Iterator zum Anfang eines Containers oder Arrays zurück
(Funktions-Template) |
|
(C++14)
|
gibt einen umgekehrten End-Iterator für einen Container oder ein Array zurück
(Funktions-Template) |
|
(C++17)
(C++20)
|
gibt die Größe eines Containers oder Arrays zurück
(Funktions-Template) |
|
(C++17)
|
prüft, ob der Container leer ist
(Funktions-Template) |
|
(C++17)
|
erhält den Zeiger auf das zugrundeliegende Array
(Funktionsschablone) |
Übersicht
#include <compare> #include <initializer_list> namespace std { // Regex-Konstanten namespace regex_constants { using syntax_option_type = /*T1*/; using match_flag_type = /*T2*/; using error_type = /*T3*/; } // class regex_error class regex_error; // Klassentemplate regex_traits template<class CharT> struct regex_traits; // Klassentemplate basic_regex template<class CharT, class Traits = regex_traits<CharT>> class basic_regex; using regex = basic_regex<char>; using wregex = basic_regex<wchar_t>; // basic_regex swap template<class CharT, class Traits> void swap(basic_regex<CharT, Traits>& e1, basic_regex<CharT, Traits>& e2); // Klassentemplate sub_match template<class BiIt> class sub_match; using csub_match = sub_match<const char*>; using wcsub_match = sub_match<const wchar_t*>; using ssub_match = sub_match<string::const_iterator>; using wssub_match = sub_match<wstring::const_iterator>; // sub_match non-member operators template<class BiIt> bool operator==(const sub_match<BiIt>& lhs, const sub_match<BiIt>& rhs); template<class BiIt> auto operator<=>(const sub_match<BiIt>& lhs, const sub_match<BiIt>& rhs); template<class BiIt, class ST, class SA> bool operator==( const sub_match<BiIt>& lhs, const basic_string<typename iterator_traits<BiIt>::value_type, ST, SA>& rhs); template<class BiIt, class ST, class SA> auto operator<=>( const sub_match<BiIt>& lhs, const basic_string<typename iterator_traits<BiIt>::value_type, ST, SA>& rhs); template<class BiIt> bool operator==(const sub_match<BiIt>& lhs, const typename iterator_traits<BiIt>::value_type* rhs); template<class BiIt> auto operator<=>(const sub_match<BiIt>& lhs, const typename iterator_traits<BiIt>::value_type* rhs); template<class BiIt> bool operator==(const sub_match<BiIt>& lhs, const typename iterator_traits<BiIt>::value_type& rhs); template<class BiIt> auto operator<=>(const sub_match<BiIt>& lhs, const typename iterator_traits<BiIt>::value_type& rhs); template<class CharT, class ST, class BiIt> basic_ostream<CharT, ST>& operator<<(basic_ostream<CharT, ST>& os, const sub_match<BiIt>& m); // Klassentemplate match_results template<class BiIt, class Allocator = allocator<sub_match<BiIt>>> class match_results; using cmatch = match_results<const char*>; using wcmatch = match_results<const wchar_t*>; using smatch = match_results<string::const_iterator>; using wsmatch = match_results<wstring::const_iterator>; // match_results-Vergleiche template<class BiIt, class Allocator> bool operator==(const match_results<BiIt, Allocator>& m1, const match_results<BiIt, Allocator>& m2); // match_results swap template<class BiIt, class Allocator> void swap(match_results<BiIt, Allocator>& m1, match_results<BiIt, Allocator>& m2); // Funktionsvorlage regex_match template<class BiIt, class Allocator, class CharT, class Traits> bool regex_match(BiIt first, BiIt last, match_results<BiIt, Allocator>& m, const basic_regex<CharT, Traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); template<class BiIt, class CharT, class Traits> bool regex_match(BiIt first, BiIt last, const basic_regex<CharT, Traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); template<class CharT, class Allocator, class Traits> bool regex_match(const CharT* str, match_results<const CharT*, Allocator>& m, const basic_regex<CharT, Traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); template<class ST, class SA, class Allocator, class CharT, class Traits> bool regex_match(const basic_string<CharT, ST, SA>& s, match_results<typename basic_string<CharT, ST, SA>::const_iterator, Allocator>& m, const basic_regex<CharT, Traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); template<class ST, class SA, class Allocator, class CharT, class Traits> bool regex_match(const basic_string<CharT, ST, SA>&&, match_results<typename basic_string<CharT, ST, SA>::const_iterator, Allocator>&, const basic_regex<CharT, Traits>&, regex_constants::match_flag_type = regex_constants::match_default) = delete; template<class CharT, class Traits> bool regex_match(const CharT* str, const basic_regex<CharT, Traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); template<class ST, class SA, class CharT, class Traits> bool regex_match(const basic_string<CharT, ST, SA>& s, const basic_regex<CharT, Traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); // Funktions-Template regex_search template<class BiIt, class Allocator, class CharT, class Traits> bool regex_search(BiIt first, BiIt last, match_results<BiIt, Allocator>& m, const basic_regex<CharT, Traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); template<class BiIt, class CharT, class Traits> bool regex_search(BiItfirst, BiIt last, const basic_regex<CharT, Traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); template<class CharT, class Allocator, class Traits> bool regex_search(const CharT* str, match_results<const CharT*, Allocator>& m, const basic_regex<CharT, Traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); template<class CharT, class Traits> bool regex_search(const CharT* str, const basic_regex<CharT, Traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); template<class ST, class SA, class CharT, class Traits> bool regex_search(const basic_string<CharT, ST, SA>& s, const basic_regex<CharT, Traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); template<class ST, class SA, class Allocator, class CharT, class Traits> bool regex_search(const basic_string<CharT, ST, SA>& s, match_results<typename basic_string<CharT, ST, SA>::const_iterator, Allocator>& m, const basic_regex<CharT, Traits>& e, regex_constants::match_flag_type flags = regex_constants::match_default); template<class ST, class SA, class Allocator, class CharT, class Traits> bool regex_search(const basic_string<CharT, ST, SA>&&, match_results<typename basic_string<CharT, ST, SA>::const_iterator, Allocator>&, const basic_regex<CharT, Traits>&, regex_constants::match_flag_type = regex_constants::match_default) = delete; // Funktionsvorlage regex_replace template<class OutputIt, class BiIt, class Traits, class CharT, class ST, class SA> OutputIt regex_replace(OutputIt out, BiIt first, BiIt last, const basic_regex<CharT, Traits>& e, const basic_string<CharT, ST, SA>& fmt, regex_constants::match_flag_type flags = regex_constants::match_default); template<class OutputIt, class BiIt, class Traits, class CharT> OutputIt regex_replace(OutputIt out, BiIt first, BiIt last, const basic_regex<CharT, Traits>& e, const CharT* fmt, regex_constants::match_flag_type flags = regex_constants::match_default); template<class Traits, class CharT, class ST, class SA, class FST, class FSA> basic_string<CharT, ST, SA> regex_replace(const basic_string<CharT, ST, SA>& s, const basic_regex<CharT, Traits>& e, const basic_string<CharT, FST, FSA>& fmt, regex_constants::match_flag_type flags = regex_constants::match_default); template<class Traits, class CharT, class ST, class SA> basic_string<CharT, ST, SA> regex_replace(const basic_string<CharT, ST, SA>& s, const basic_regex<CharT, Traits>& e, const CharT* fmt, regex_constants::match_flag_type flags = regex_constants::match_default); template<class Traits, class CharT, class ST, class SA> basic_string<CharT> regex_replace(const CharT* s, const basic_regex<CharT, Traits>& e, const basic_string<CharT, ST, SA>& fmt, regex_constants::match_flag_type flags = regex_constants::match_default); template<class Traits, class CharT> basic_string<CharT> regex_replace(const CharT* s, const basic_regex<CharT, Traits>& e, const CharT* fmt, regex_constants::match_flag_type flags = regex_constants::match_default); // Klassentemplate regex_iterator template<class BiIt, class CharT = typename iterator_traits<BiIt>::value_type, class Traits = regex_traits<CharT>> class regex_iterator; using cregex_iterator = regex_iterator<const char*>; using wcregex_iterator = regex_iterator<const wchar_t*>; using sregex_iterator = regex_iterator<string::const_iterator>; using wsregex_iterator = regex_iterator<wstring::const_iterator>; // class template regex_token_iterator template<class BiIt, class CharT = typename iterator_traits<BiIt>::value_type, class Traits = regex_traits<CharT>> class regex_token_iterator; using cregex_token_iterator = regex_token_iterator<const char*>; using wcregex_token_iterator = regex_token_iterator<const wchar_t*>; using sregex_token_iterator = regex_token_iterator<string::const_iterator>; using wsregex_token_iterator = regex_token_iterator<wstring::const_iterator>; namespace pmr { template<class BiIt> using match_results = std::match_results<BiIt, polymorphic_allocator<sub_match<BiIt>>>; using cmatch = match_results<const char*>; using wcmatch = match_results<const wchar_t*>; using smatch = match_results<string::const_iterator>; using wsmatch = match_results<wstring::const_iterator>; } }
Bitmask-Typ std::regex_constants::syntax_option_type
namespace std::regex_constants { using syntax_option_type = /*T1*/; inline constexpr syntax_option_type icase = /* unspecified */; inline constexpr syntax_option_type nosubs = /* unspecified */; inline constexpr syntax_option_type optimize = /* unspecified */; inline constexpr syntax_option_type collate = /* unspecified */; inline constexpr syntax_option_type ECMAScript = /* unspecified */; inline constexpr syntax_option_type basic = /* unspecified */; inline constexpr syntax_option_type extended = /* unspecified */; inline constexpr syntax_option_type awk = /* unspecified */; inline constexpr syntax_option_type grep = /* unspecified */; inline constexpr syntax_option_type egrep = /* unspecified */; inline constexpr syntax_option_type multiline = /* unspecified */; }
Bitmask-Typ std::regex_constants::match_flag_type
namespace std::regex_constants { using match_flag_type = /*T2*/; inline constexpr match_flag_type match_default = {}; inline constexpr match_flag_type match_not_bol = /* unspecified */; inline constexpr match_flag_type match_not_eol = /* unspecified */; inline constexpr match_flag_type match_not_bow = /* unspecified */; inline constexpr match_flag_type match_not_eow = /* unspecified */; inline constexpr match_flag_type match_any = /* unspecified */; inline constexpr match_flag_type match_not_null = /* unspecified */; inline constexpr match_flag_type match_continuous = /* unspecified */; inline constexpr match_flag_type match_prev_avail = /* unspecified */; inline constexpr match_flag_type format_default = {}; inline constexpr match_flag_type format_sed = /* unspecified */; inline constexpr match_flag_type format_no_copy = /* unspecified */; inline constexpr match_flag_type format_first_only = /* unspecified */; }
Aufgezählter Typ std::regex_constants::error_type
namespace std::regex_constants { using error_type = /*T3*/; inline constexpr error_type error_collate = /* nicht spezifiziert */; inline constexpr error_type error_ctype = /* nicht spezifiziert */; inline constexpr error_type error_escape = /* nicht spezifiziert */; inline constexpr error_type error_backref = /* nicht spezifiziert */; inline constexpr error_type error_brack = /* nicht spezifiziert */; inline constexpr error_type error_paren = /* nicht spezifiziert */; inline constexpr error_type error_brace = /* nicht spezifiziert */; inline constexpr error_type error_badbrace = /* nicht spezifiziert */; inline constexpr error_type error_range = /* nicht spezifiziert */; inline constexpr error_type error_space = /* nicht spezifiziert */; inline constexpr error_type error_badrepeat = /* nicht spezifiziert */; inline constexpr error_type error_complexity = /* nicht spezifiziert */; inline constexpr error_type error_stack = /* nicht spezifiziert */; }
Klasse std::regex_error
namespace std { class regex_error : public runtime_error { public: explicit regex_error(regex_constants::error_type ecode); regex_constants::error_type code() const; }; }
Klassentemplate std::regex_traits
namespace std { template<class CharT> struct regex_traits { using char_type = CharT; using string_type = basic_string<char_type>; using locale_type = locale; using char_class_type = /* bitmask-type */; regex_traits(); static size_t length(const char_type* p); CharT translate(CharT c) const; CharT translate_nocase(CharT c) const; template<class ForwardIt> string_type transform(ForwardIt first, ForwardIt last) const; template<class ForwardIt> string_type transform_primary(ForwardIt first, ForwardIt last) const; template<class ForwardIt> string_type lookup_collatename(ForwardIt first, ForwardIt last) const; template<class ForwardIt> char_class_type lookup_classname(ForwardIt first, ForwardIt last, bool icase = false) const; bool isctype(CharT c, char_class_type f) const; int value(CharT ch, int radix) const; locale_type imbue(locale_type l); locale_type getloc() const; }; }
Klassentemplate std::basic_regex
namespace std { template<class CharT, class Traits = regex_traits<CharT>> class basic_regex { public: // Typen using value_type = CharT; using Traits_type = Traits; using string_type = typename Traits::string_type; using flag_type = regex_constants::syntax_option_type; using locale_type = typename Traits::locale_type; // Konstanten static constexpr flag_type icase = regex_constants::icase; static constexpr flag_type nosubs = regex_constants::nosubs; static constexpr flag_type optimize = regex_constants::optimieren; static constexpr flag_type collate = regex_constants::collate; static constexpr flag_type ECMAScript = regex_constants::ECMAScript; static constexpr flag_type basic = regex_constants::basic; static constexpr flag_type extended = regex_constants::erweitert; static constexpr flag_type awk = regex_constants::awk; static constexpr flag_type grep = regex_constants::grep; static constexpr flag_type egrep = regex_constants::egrep; static constexpr flag_type multiline = regex_constants::mehrzeilig; // Konstruieren/Kopieren/Zerstören basic_regex(); explicit basic_regex(const CharT* p, flag_type f = regex_constants::ECMAScript); basic_regex(const CharT* p, size_t len, flag_type f = regex_constants::ECMAScript); basic_regex(const basic_regex&); basic_regex(basic_regex&&) noexcept; template<class ST, class SA> explicit basic_regex(const basic_string<CharT, ST, SA>& s, flag_type f = regex_constants::ECMAScript); template<class ForwardIt> basic_regex(ForwardIt first, ForwardIt last, flag_type f = regex_constants::ECMAScript); basic_regex(initializer_list<CharT> il, flag_type f = regex_constants::ECMAScript); ~basic_regex(); // zuweisen basic_regex& operator=(const basic_regex& e); basic_regex& operator=(basic_regex&& e) noexcept; basic_regex& operator=(const CharT* p); basic_regex& operator=(initializer_list<CharT> il); template<class ST, class SA> basic_regex& operator=(const basic_string<CharT, ST, SA>& s); basic_regex& assign(const basic_regex& e); basic_regex& assign(basic_regex&& e) noexcept; basic_regex& assign(const CharT* p, flag_type f = regex_constants::ECMAScript); basic_regex& assign(const CharT* p, size_t len, flag_type f = regex_constants::ECMAScript); template<class ST, class SA> basic_regex& assign(const basic_string<CharT, ST, SA>& s, flag_type f = regex_constants::ECMAScript); template<class InputIt> basic_regex& assign(InputIt first, InputIt last, flag_type f = regex_constants::ECMAScript); basic_regex& assign(initializer_list<CharT>, flag_type f = regex_constants::ECMAScript); // const-Operationen unsigned mark_count() const; flag_type flags() const; // locale locale_type imbue(locale_type loc); locale_type getloc() const; // swap void swap(basic_regex&); }; template<class ForwardIt> basic_regex(ForwardIt, ForwardIt, regex_constants::syntax_option_type = regex_constants::ECMAScript) -> basic_regex<typename iterator_traits<ForwardIt>::value_type>; }
Klassentemplate std::sub_match
namespace std { template<class BiIt> class sub_match : public pair<BiIt, BiIt> { public: using value_type = typename iterator_traits<BiIt>::value_type; using difference_type = typename iterator_traits<BiIt>::difference_type; using iterator = BiIt; using string_type = basic_string<value_type>; bool matched; constexpr sub_match(); difference_type length() const; operator string_type() const; string_type str() const; int compare(const sub_match& s) const; int compare(const string_type& s) const; int compare(const value_type* s) const; void swap(sub_match& s) noexcept(/* siehe Beschreibung */); }; }
Klassentemplate std::match_results
namespace std { template<class BiIt, class Allocator = allocator<sub_match<BiIt>>> class match_results { public: using value_type = sub_match<BiIt>; using const_reference = const value_type&; using reference = value_type&; using const_iterator = /* implementierungsdefiniert */; using iterator = const_iterator; using difference_type = typename iterator_traits<BiIt>::difference_type; using size_type = typename allocator_traits<Allocator>::size_type; using allocator_type = Allocator; using char_type = typename iterator_traits<BiIt>::value_type; using string_type = basic_string<char_type>; // Konstruktion/Kopieren/Zerstörung match_results() : match_results(Allocator()) {} explicit match_results(const Allocator& a); match_results(const match_results& m); match_results(const match_results& m, const Allocator& a); match_results(match_results&& m) noexcept; match_results(match_results&& m, const Allocator& a); match_results& operator=(const match_results& m); match_results& operator=(match_results&& m); ~match_results(); // Zustand bool ready() const; // Größe size_type size() const; size_type max_size() const; bool empty() const; // Elementzugriff difference_type length(size_type sub = 0) const; difference_type position(size_type sub = 0) const; string_type str(size_type sub = 0) const; const_reference operator[](size_type n) const; const_reference prefix() const; const_reference suffix() const; const_iterator begin() const; const_iterator end() const; const_iterator cbegin() const; const_iterator cend() const; // Formatierung template<class OutputIt> OutputIt format(OutputIt out, const char_type* fmt_first, const char_type* fmt_last, regex_constants::match_flag_type flags = regex_constants::format_default) const; template<class OutputIt, class ST, class SA> OutputIt format(OutputIt out, const basic_string<char_type, ST, SA>& fmt, regex_constants::match_flag_type flags = regex_constants::format_default) const; template<class ST, class SA> basic_string<char_type, ST, SA> format(const basic_string<char_type, ST, SA>& fmt, regex_constants::match_flag_type flags = regex_constants::format_default) const; string_type format(const char_type* fmt, regex_constants::match_flag_type flags = regex_constants::format_default) const; // Allokator allocator_type get_allocator() const; // Austausch void swap(match_results& that); }; }