libstdc++: std::basic_regex< _Ch_type, _Rx_traits > Class Template Reference

libstdc++

std::basic_regex< _Ch_type, _Rx_traits > Class Template Reference
Regular Expressions

`#include <regex>`

## Public Types
typedef regex_constants::syntax_option_type | flag_type
typedef traits_type::locale_type | locale_type
typedef traits_type::string_type | string_type
typedef _Rx_traits | traits_type
typedef _Ch_type | value_type

## Public Member Functions
| basic_regex () noexcept
template<typename _FwdIter>
| basic_regex (_FwdIter __first, _FwdIter __last, flag_type __f=ECMAScript)
| basic_regex (basic_regex &&__rhs) noexcept=default
| basic_regex (const _Ch_type *__p, flag_type __f=ECMAScript)
| basic_regex (const _Ch_type *__p, std::size_t __len, flag_type __f=ECMAScript)
| basic_regex (const basic_regex &__rhs)=default
template<typename _Ch_traits, typename _Ch_alloc>
| basic_regex (const std::basic_string< _Ch_type, _Ch_traits, _Ch_alloc > &__s, flag_type __f=ECMAScript)
| basic_regex (initializer_list< _Ch_type > __l, flag_type __f=ECMAScript)
| ~basic_regex ()
template<typename _InputIterator>
basic_regex & | assign (_InputIterator __first, _InputIterator __last, flag_type __flags=ECMAScript)
basic_regex & | assign (basic_regex &&__rhs) noexcept
basic_regex & | assign (const _Ch_type *__p, flag_type __flags=ECMAScript)
basic_regex & | assign (const _Ch_type *__p, size_t __len, flag_type __flags=ECMAScript)
basic_regex & | assign (const basic_regex &__rhs) noexcept
template<typename _Ch_traits, typename _Alloc>
basic_regex & | assign (const basic_string< _Ch_type, _Ch_traits, _Alloc > &__s, flag_type __flags=ECMAScript)
basic_regex & | assign (initializer_list< _Ch_type > __l, flag_type __flags=ECMAScript)
flag_type | flags () const noexcept
locale_type | getloc () const noexcept
locale_type | imbue (locale_type __loc)
unsigned int | mark_count () const noexcept
basic_regex & | operator= (basic_regex &&)=default
basic_regex & | operator= (const _Ch_type *__p)
basic_regex & | operator= (const basic_regex &)=default
template<typename _Ch_traits, typename _Alloc>
basic_regex & | operator= (const basic_string< _Ch_type, _Ch_traits, _Alloc > &__s)
basic_regex & | operator= (initializer_list< _Ch_type > __l)
void | swap (basic_regex &__rhs) noexcept

## Static Public Attributes
Constants
std [28.8.1](1)
static constexpr flag_type | icase
static constexpr flag_type | nosubs
static constexpr flag_type | optimize
static constexpr flag_type | collate
static constexpr flag_type | ECMAScript
static constexpr flag_type | basic
static constexpr flag_type | extended
static constexpr flag_type | awk
static constexpr flag_type | grep
static constexpr flag_type | egrep
static constexpr flag_type | multiline

## Friends
template<typename _Bp, typename _Ap, typename _Cp, typename _Rp>
bool | __detail::__regex_algo_impl (_Bp, _Bp, match_results< _Bp, _Ap > &, const basic_regex< _Cp, _Rp > &, regex_constants::match_flag_type, __detail::_RegexExecutorPolicy, bool)
template<typename, typename, typename>
class | __detail::_Executor

## Related Symbols
(Note that these are not member symbols.)
template<typename _Ch_type, typename _Rx_traits>
void | swap (basic_regex< _Ch_type, _Rx_traits > &__lhs, basic_regex< _Ch_type, _Rx_traits > &__rhs) noexcept

## Detailed Description

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>
class std::basic_regex< _Ch_type, _Rx_traits >

A regular expression.

Specializations of this class template represent regular expressions constructed from sequences of character type _Ch_type. Use the std::regex typedef for std::basic_regex<char>.

A character sequence passed to the constructor will be parsed according to the chosen grammar, and used to create a state machine representing the regular expression. The regex object can then be passed to algorithms such as std::regex_match to match sequences of characters.

The syntax_option_type flag passed to the constructor selects from one of the supported regular expression grammars. The default is ECMAScript and the others are basic, extended, awk, grep, and egrep, which are variations on POSIX regular expressions.

Since
  C++11

Definition at line 440 of file regex.h.

## Member Typedef Documentation

## ◆ flag_type

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

typedef regex_constants::syntax_option_type std::basic_regex< _Ch_type, _Rx_traits >::flag_type

Definition at line 450 of file regex.h.

## ◆ locale_type

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

typedef traits_type::locale_type std::basic_regex< _Ch_type, _Rx_traits >::locale_type

Definition at line 451 of file regex.h.

## ◆ string_type

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

typedef traits_type::string_type std::basic_regex< _Ch_type, _Rx_traits >::string_type

Definition at line 449 of file regex.h.

## ◆ traits_type

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

typedef _Rx_traits std::basic_regex< _Ch_type, _Rx_traits >::traits_type

Definition at line 448 of file regex.h.

## ◆ value_type

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

typedef _Ch_type std::basic_regex< _Ch_type, _Rx_traits >::value_type

Definition at line 447 of file regex.h.

## Constructor & Destructor Documentation

## ◆ basic_regex() [1/8]

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

std::basic_regex< _Ch_type, _Rx_traits >::basic_regex | ( |  | ) |
| inlinenoexcept

Constructs a basic regular expression that does not match any character sequence.

Definition at line 478 of file regex.h.

## ◆ basic_regex() [2/8]

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

std::basic_regex< _Ch_type, _Rx_traits >::basic_regex | ( | const _Ch_type * | __p,
|  | flag_type | __f = ECMAScript )
| inlineexplicit

Constructs a basic regular expression from the sequence [__p, __p + char_traits<_Ch_type>::length(__p)) interpreted according to the flags in `__f`.

Parameters

  __p | A pointer to the start of a C-style null-terminated string containing a regular expression.
  __f | Flags indicating the syntax rules and options.

Exceptions

  regex_error | if `__p` is not a valid regular expression.

Definition at line 494 of file regex.h.

## ◆ basic_regex() [3/8]

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

std::basic_regex< _Ch_type, _Rx_traits >::basic_regex | ( | const _Ch_type * | __p,
|  | std::size_t | __len,
|  | flag_type | __f = ECMAScript )
| inline

Constructs a basic regular expression from the sequence [p, p + len) interpreted according to the flags in `f`.

Parameters

  __p | A pointer to the start of a string containing a regular expression.
  __len | The length of the string containing the regular expression.
  __f | Flags indicating the syntax rules and options.

Exceptions

  regex_error | if `__p` is not a valid regular expression.

Definition at line 509 of file regex.h.

## ◆ basic_regex() [4/8]

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

std::basic_regex< _Ch_type, _Rx_traits >::basic_regex | ( | const basic_regex< _Ch_type, _Rx_traits > & | __rhs | ) |
| default

Copy-constructs a basic regular expression.

Parameters

  __rhs | A `regex` object.

## ◆ basic_regex() [5/8]

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

std::basic_regex< _Ch_type, _Rx_traits >::basic_regex | ( | basic_regex< _Ch_type, _Rx_traits > && | __rhs | ) |
| defaultnoexcept

Move-constructs a basic regular expression.

Parameters

  __rhs | A `regex` object.

## ◆ basic_regex() [6/8]

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>
template<typename _Ch_traits, typename _Ch_alloc>

std::basic_regex< _Ch_type, _Rx_traits >::basic_regex | ( | const std::basic_string< _Ch_type, _Ch_traits, _Ch_alloc > & | __s,
|  | flag_type | __f = ECMAScript )
| inlineexplicit

Constructs a basic regular expression from the string `s` interpreted according to the flags in `f`.

Parameters

  __s | A string containing a regular expression.
  __f | Flags indicating the syntax rules and options.

Exceptions

  regex_error | if `__s` is not a valid regular expression.

Definition at line 541 of file regex.h.

## ◆ basic_regex() [7/8]

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>
template<typename _FwdIter>

std::basic_regex< _Ch_type, _Rx_traits >::basic_regex | ( | _FwdIter | __first,
|  | _FwdIter | __last,
|  | flag_type | __f = ECMAScript )
| inline

Constructs a basic regular expression from the range [first, last) interpreted according to the flags in `f`.

Parameters

  __first | The start of a range containing a valid regular expression.
  __last | The end of a range containing a valid regular expression.
  __f | The format flags of the regular expression.

Exceptions

  regex_error | if ``[__first, __last) is not a valid regular expression.

Definition at line 560 of file regex.h.

## ◆ basic_regex() [8/8]

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

std::basic_regex< _Ch_type, _Rx_traits >::basic_regex | ( | initializer_list< _Ch_type > | __l,
|  | flag_type | __f = ECMAScript )
| inline

Constructs a basic regular expression from an initializer list.

Parameters

  __l | The initializer list.
  __f | The format flags of the regular expression.

Exceptions

  regex_error | if `__l` is not a valid regular expression.

Definition at line 572 of file regex.h.

## ◆ ~basic_regex()

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

std::basic_regex< _Ch_type, _Rx_traits >::~basic_regex | ( |  | ) |
| inline

Destroys a basic regular expression.

Definition at line 578 of file regex.h.

## Member Function Documentation

## ◆ assign() [1/7]

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>
template<typename _InputIterator>

basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::assign | ( | _InputIterator | __first,
|  | _InputIterator | __last,
|  | flag_type | __flags = ECMAScript )
| inline

Assigns a new regular expression to a regex object.

Parameters

  __first | The start of a range containing a valid regular expression.
  __last | The end of a range containing a valid regular expression.
  __flags | Syntax option flags.

Exceptions

  regex_error | if p does not contain a valid regular expression pattern interpreted according to `__flags`. If regex_error is thrown, the object remains unchanged.

Definition at line 723 of file regex.h.

## ◆ assign() [2/7]

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::assign | ( | basic_regex< _Ch_type, _Rx_traits > && | __rhs | ) |
| inlinenoexcept

Move-assigns one regular expression to another.

Parameters

  __rhs | Another regular expression object.

Definition at line 643 of file regex.h.

## ◆ assign() [3/7]

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::assign | ( | const _Ch_type * | __p,
|  | flag_type | __flags = ECMAScript )
| inline

Assigns a new regular expression to a regex object from a C-style null-terminated string containing a regular expression pattern.

Parameters

  __p | A pointer to a C-style null-terminated string containing a regular expression pattern.
  __flags | Syntax option flags.

Exceptions

  regex_error | if __p does not contain a valid regular expression pattern interpreted according to `__flags`. If regex_error is thrown, *this remains unchanged.

Definition at line 660 of file regex.h.

## ◆ assign() [4/7]

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::assign | ( | const _Ch_type * | __p,
|  | size_t | __len,
|  | flag_type | __flags = ECMAScript )
| inline

Assigns a new regular expression to a regex object from a C-style string containing a regular expression pattern.

Parameters

  __p | A pointer to a C-style string containing a regular expression pattern.
  __len | The length of the regular expression pattern string.
  __flags | Syntax option flags.

Exceptions

  regex_error | if p does not contain a valid regular expression pattern interpreted according to `__flags`. If regex_error is thrown, *this remains unchanged.

Definition at line 682 of file regex.h.

## ◆ assign() [5/7]

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::assign | ( | const basic_regex< _Ch_type, _Rx_traits > & | __rhs | ) |
| inlinenoexcept

Assigns one regular expression to another.

Parameters

  __rhs | Another regular expression object.

Definition at line 634 of file regex.h.

Referenced by std::basic_regex< char >::basic_regex(), std::basic_regex< char >::assign(), std::basic_regex< char >::operator=(), std::basic_regex< char >::operator=(), and std::basic_regex< char >::operator=().

## ◆ assign() [6/7]

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>
template<typename _Ch_traits, typename _Alloc>

basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::assign | ( | const basic_string< _Ch_type, _Ch_traits, _Alloc > & | __s,
|  | flag_type | __flags = ECMAScript )
| inline

Assigns a new regular expression to a regex object from a string containing a regular expression pattern.

Parameters

  __s | A string containing a regular expression pattern.
  __flags | Syntax option flags.

Exceptions

  regex_error | if __s does not contain a valid regular expression pattern interpreted according to `__flags`. If regex_error is thrown, *this remains unchanged.

Definition at line 701 of file regex.h.

## ◆ assign() [7/7]

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::assign | ( | initializer_list< _Ch_type > | __l,
|  | flag_type | __flags = ECMAScript )
| inline

Assigns a new regular expression to a regex object.

Parameters

  __l | An initializer list representing a regular expression.
  __flags | Syntax option flags.

Exceptions

  regex_error | if `__l` does not contain a valid regular expression pattern interpreted according to `__flags`. If regex_error is thrown, the object remains unchanged.

Definition at line 755 of file regex.h.

## ◆ flags()

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

flag_type std::basic_regex< _Ch_type, _Rx_traits >::flags | ( |  | ) | const
| inlinenoexcept

Gets the flags used to construct the regular expression or in the last call to assign().

Definition at line 779 of file regex.h.

## ◆ getloc()

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

locale_type std::basic_regex< _Ch_type, _Rx_traits >::getloc | ( |  | ) | const
| inlinenoexcept

Gets the locale currently imbued in the regular expression object.

Definition at line 801 of file regex.h.

## ◆ imbue()

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

locale_type std::basic_regex< _Ch_type, _Rx_traits >::imbue | ( | locale_type | __loc | ) |
| inline

Imbues the regular expression object with the given locale.

Parameters

  __loc | A locale.

Definition at line 789 of file regex.h.

## ◆ mark_count()

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

unsigned int std::basic_regex< _Ch_type, _Rx_traits >::mark_count | ( |  | ) | const
| inlinenoexcept

Gets the number of marked subexpressions within the regular expression.

Definition at line 767 of file regex.h.

## ◆ operator=() [1/5]

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::operator= | ( | basic_regex< _Ch_type, _Rx_traits > && |  | ) |
| default

Move-assigns one regular expression to another.

## ◆ operator=() [2/5]

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::operator= | ( | const _Ch_type * | __p | ) |
| inline

Replaces a regular expression with a new one constructed from a C-style null-terminated string.

Parameters

  __p | A pointer to the start of a null-terminated C-style string containing a regular expression.

Definition at line 601 of file regex.h.

## ◆ operator=() [3/5]

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::operator= | ( | const basic_regex< _Ch_type, _Rx_traits > & |  | ) |
| default

Assigns one regular expression to another.

## ◆ operator=() [4/5]

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>
template<typename _Ch_traits, typename _Alloc>

basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::operator= | ( | const basic_string< _Ch_type, _Ch_traits, _Alloc > & | __s | ) |
| inline

Replaces a regular expression with a new one constructed from a string.

Parameters

  __s | A pointer to a string containing a regular expression.

Definition at line 624 of file regex.h.

## ◆ operator=() [5/5]

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

basic_regex & std::basic_regex< _Ch_type, _Rx_traits >::operator= | ( | initializer_list< _Ch_type > | __l | ) |
| inline

Replaces a regular expression with a new one constructed from an initializer list.

Parameters

  __l | The initializer list.

Exceptions

  regex_error | if `__l` is not a valid regular expression.

Definition at line 613 of file regex.h.

## ◆ swap()

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

void std::basic_regex< _Ch_type, _Rx_traits >::swap | ( | basic_regex< _Ch_type, _Rx_traits > & | __rhs | ) |
| inlinenoexcept

Swaps the contents of two regular expression objects.

Parameters

  __rhs | Another regular expression object.

Definition at line 811 of file regex.h.

## Friends And Related Symbol Documentation

## ◆ __detail::_Executor

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>
template<typename, typename, typename>

friend class __detail::_Executor
| friend

Definition at line 844 of file regex.h.

## Member Data Documentation

## ◆ awk

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

flag_type std::basic_regex< _Ch_type, _Rx_traits >::awk
| staticconstexpr

Definition at line 465 of file regex.h.

## ◆ basic

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

flag_type std::basic_regex< _Ch_type, _Rx_traits >::basic
| staticconstexpr

Definition at line 463 of file regex.h.

## ◆ collate

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

flag_type std::basic_regex< _Ch_type, _Rx_traits >::collate
| staticconstexpr

Definition at line 461 of file regex.h.

## ◆ ECMAScript

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

flag_type std::basic_regex< _Ch_type, _Rx_traits >::ECMAScript
| staticconstexpr

Definition at line 462 of file regex.h.

## ◆ egrep

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

flag_type std::basic_regex< _Ch_type, _Rx_traits >::egrep
| staticconstexpr

Definition at line 467 of file regex.h.

## ◆ extended

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

flag_type std::basic_regex< _Ch_type, _Rx_traits >::extended
| staticconstexpr

Definition at line 464 of file regex.h.

## ◆ grep

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

flag_type std::basic_regex< _Ch_type, _Rx_traits >::grep
| staticconstexpr

Definition at line 466 of file regex.h.

## ◆ icase

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

flag_type std::basic_regex< _Ch_type, _Rx_traits >::icase
| staticconstexpr

Definition at line 458 of file regex.h.

## ◆ multiline

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

flag_type std::basic_regex< _Ch_type, _Rx_traits >::multiline
| staticconstexpr

Definition at line 469 of file regex.h.

## ◆ nosubs

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

flag_type std::basic_regex< _Ch_type, _Rx_traits >::nosubs
| staticconstexpr

Definition at line 459 of file regex.h.

## ◆ optimize

template<typename _Ch_type, typename _Rx_traits = regex_traits<_Ch_type>>

flag_type std::basic_regex< _Ch_type, _Rx_traits >::optimize
| staticconstexpr

Definition at line 460 of file regex.h.

The documentation for this class was generated from the following file:

- regex.h