std::basic_regex< typename, typename > Class Template Reference
Regular Expressions

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

## 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

## Protected Types

typedef std::shared_ptr < __detail::_NFA< _Rx_traits > > | _AutomatonPtr

## Protected Attributes

_AutomatonPtr | _M_automaton
flag_type | _M_flags
basic_string< _Ch_type > | _M_original_str
_Rx_traits | _M_traits

## Friends

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

## Detailed Description

### template<typename, typename>
class std::basic_regex< typename, typename >

Objects of specializations of this class represent regular expressions constructed from sequences of character type `_Ch_type`.

Storage for the regular expression is allocated and deallocated as necessary by the member functions of this class.

Definition at line 35 of file regex.h.

## Constructor & Destructor Documentation

template<typename , typename >

std::basic_regex< typename, typename >::basic_regex | ( |  | ) |

inline

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

Definition at line 435 of file regex.h.

template<typename , typename >

std::basic_regex< typename, typename >::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 451 of file regex.h.

template<typename , typename >

std::basic_regex< typename, typename >::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 467 of file regex.h.

template<typename , typename >

std::basic_regex< typename, typename >::basic_regex | ( | const basic_regex< typename, typename > & | __rhs | ) |

default

Copy-constructs a basic regular expression.

Parameters

  __rhs | A `regex` object.

template<typename , typename >

std::basic_regex< typename, typename >::basic_regex | ( | const basic_regex< typename, typename > && | __rhs | ) |

inlinenoexcept

Move-constructs a basic regular expression.

Parameters

  __rhs | A `regex` object.

Definition at line 484 of file regex.h.

template<typename , typename >
template<typename _Ch_traits , typename _Ch_alloc >

std::basic_regex< typename, typename >::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 500 of file regex.h.

template<typename , typename >
template<typename _FwdIter >

std::basic_regex< typename, typename >::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 520 of file regex.h.

template<typename , typename >

std::basic_regex< typename, typename >::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 539 of file regex.h.

template<typename , typename >

std::basic_regex< typename, typename >::~basic_regex | ( |  | ) |

inline

Destroys a basic regular expression.

Definition at line 546 of file regex.h.

## Member Function Documentation

template<typename , typename >

basic_regex& std::basic_regex< typename, typename >::assign | ( | const basic_regex< typename, typename > & | __rhs | ) |

inline

the real assignment operator.

Parameters

  __rhs | Another regular expression object.

Definition at line 592 of file regex.h.

References std::basic_regex< typename, typename >::swap().

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

template<typename , typename >

basic_regex& std::basic_regex< typename, typename >::assign | ( | basic_regex< typename, typename > && | __rhs | ) |

inlinenoexcept

The move-assignment operator.

Parameters

  __rhs | Another regular expression object.

Definition at line 605 of file regex.h.

References std::basic_regex< typename, typename >::swap().

template<typename , typename >

basic_regex& std::basic_regex< typename, typename >::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 626 of file regex.h.

References std::basic_regex< typename, typename >::assign().

template<typename , typename >

basic_regex& std::basic_regex< typename, typename >::assign | ( | const _Ch_type * | __p,
|  | std::size_t | __len,
|  | flag_type | __flags
| ) |  |

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 643 of file regex.h.

References std::basic_regex< typename, typename >::assign().

template<typename , typename >
template<typename _Ch_typeraits , typename _Alloc >

basic_regex& std::basic_regex< typename, typename >::assign | ( | const basic_string< _Ch_type, _Ch_typeraits, _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 659 of file regex.h.

References std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::basic_string< _CharT, _Traits, _Alloc >::begin(), std::basic_string< _CharT, _Traits, _Alloc >::c_str(), std::basic_string< _CharT, _Traits, _Alloc >::end(), and std::basic_string< _CharT, _Traits, _Alloc >::size().

template<typename , typename >
template<typename _InputIterator >

basic_regex& std::basic_regex< typename, typename >::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 686 of file regex.h.

References std::basic_regex< typename, typename >::assign().

template<typename , typename >

basic_regex& std::basic_regex< typename, typename >::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 702 of file regex.h.

References std::basic_regex< typename, typename >::assign().

template<typename , typename >

flag_type std::basic_regex< typename, typename >::flags | ( |  | ) | const

inline

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

Definition at line 719 of file regex.h.

Referenced by std::basic_regex< typename, typename >::operator=().

template<typename , typename >

locale_type std::basic_regex< typename, typename >::getloc | ( |  | ) | const

inline

Gets the locale currently imbued in the regular expression object.

Definition at line 741 of file regex.h.

template<typename , typename >

locale_type std::basic_regex< typename, typename >::imbue | ( | locale_type | __loc | ) |

inline

Imbues the regular expression object with the given locale.

Parameters

  __loc | A locale.

Definition at line 729 of file regex.h.

References std::basic_regex< typename, typename >::assign().

template<typename , typename >

unsigned int std::basic_regex< typename, typename >::mark_count | ( |  | ) | const

inline

Gets the number of marked subexpressions within the regular expression.

Definition at line 711 of file regex.h.

template<typename , typename >

basic_regex& std::basic_regex< typename, typename >::operator= | ( | const basic_regex< typename, typename > & | __rhs | ) |

inline

Assigns one regular expression to another.

Definition at line 553 of file regex.h.

References std::basic_regex< typename, typename >::assign().

template<typename , typename >

basic_regex& std::basic_regex< typename, typename >::operator= | ( | basic_regex< typename, typename > && | __rhs | ) |

inlinenoexcept

Move-assigns one regular expression to another.

Definition at line 560 of file regex.h.

References std::basic_regex< typename, typename >::assign().

template<typename , typename >

basic_regex& std::basic_regex< typename, typename >::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 571 of file regex.h.

References std::basic_regex< typename, typename >::assign(), and std::basic_regex< typename, typename >::flags().

template<typename , typename >
template<typename _Ch_typeraits , typename _Alloc >

basic_regex& std::basic_regex< typename, typename >::operator= | ( | const basic_string< _Ch_type, _Ch_typeraits, _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 582 of file regex.h.

References std::basic_regex< typename, typename >::assign(), and std::basic_regex< typename, typename >::flags().

template<typename , typename >

void std::basic_regex< typename, typename >::swap | ( | basic_regex< typename, typename > & | __rhs | ) |

inline

Swaps the contents of two regular expression objects.

Parameters

  __rhs | Another regular expression object.

Definition at line 751 of file regex.h.

Referenced by std::basic_regex< typename, typename >::assign().

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

- regex.h