bes Updated for version 3.21.1
The Backend Server (BES) is the lower two tiers of the Hyrax data server
internal::GenericRegex< Encoding, Allocator > Class Template Reference

Regular expression engine with subset of ECMAscript grammar. More...

#include <regex.h>

Inheritance diagram for internal::GenericRegex< Encoding, Allocator >:
Inheritance graph
Collaboration diagram for internal::GenericRegex< Encoding, Allocator >:
Collaboration graph

Public Types

typedef Encoding::Ch Ch
 
typedef Encoding EncodingType
 

Public Member Functions

 GenericRegex (const Ch *source, Allocator *allocator=0)
 
bool IsValid () const
 

Friends

template<typename, typename>
class GenericRegexSearch
 

Detailed Description

template<typename Encoding, typename Allocator = CrtAllocator>
class internal::GenericRegex< Encoding, Allocator >

Regular expression engine with subset of ECMAscript grammar.

Supported regular expression syntax:

  • ab Concatenation
  • a|b Alternation
  • a? Zero or one
  • a* Zero or more
  • a+ One or more
  • a{3} Exactly 3 times
  • a{3,} At least 3 times
  • a{3,5} 3 to 5 times
  • (ab) Grouping
  • ^a At the beginning
  • a$ At the end
  • . Any character
  • [abc] Character classes
  • [a-c] Character class range
  • [a-z0-9_] Character class combination
  • [^abc] Negated character classes
  • [^a-c] Negated character class range
  • [] Backspace (U+0008)
  • \| \\ ... Escape characters
  • \f Form feed (U+000C)
  • \n Line feed (U+000A)
  • \r Carriage return (U+000D)
  • \t Tab (U+0009)
  • \v Vertical tab (U+000B)
Note
This is a Thompson NFA engine, implemented with reference to Cox, Russ. "Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby,...).", https://swtch.com/~rsc/regexp/regexp1.html

Definition at line 110 of file regex.h.

Member Typedef Documentation

◆ Ch

template<typename Encoding, typename Allocator = CrtAllocator>
typedef Encoding::Ch internal::GenericRegex< Encoding, Allocator >::Ch

Definition at line 113 of file regex.h.

◆ EncodingType

template<typename Encoding, typename Allocator = CrtAllocator>
typedef Encoding internal::GenericRegex< Encoding, Allocator >::EncodingType

Definition at line 112 of file regex.h.

Constructor & Destructor Documentation

◆ GenericRegex()

template<typename Encoding, typename Allocator = CrtAllocator>
internal::GenericRegex< Encoding, Allocator >::GenericRegex ( const Ch * source,
Allocator * allocator = 0 )
inline

Definition at line 116 of file regex.h.

◆ ~GenericRegex()

template<typename Encoding, typename Allocator = CrtAllocator>
internal::GenericRegex< Encoding, Allocator >::~GenericRegex ( )
inline

Definition at line 126 of file regex.h.

Member Function Documentation

◆ IsValid()

template<typename Encoding, typename Allocator = CrtAllocator>
bool internal::GenericRegex< Encoding, Allocator >::IsValid ( ) const
inline

Definition at line 131 of file regex.h.

Friends And Related Symbol Documentation

◆ GenericRegexSearch

template<typename Encoding, typename Allocator = CrtAllocator>
template<typename, typename>
friend class GenericRegexSearch
friend

Definition at line 114 of file regex.h.


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