CppCMS
|
This is a simple wrapper of PCRE library. More...
#include <booster/booster/perl_regex.h>
Public Types | |
typedef char | value_type |
Public Member Functions | |
regex (regex const &) | |
regex const & | operator= (regex const &) |
regex (std::string const &pattern, int flags=normal) | |
void | assign (std::string const &pattern, int flags=normal) |
int | flags () const |
std::string | str () const |
unsigned | mark_count () const |
bool | match (char const *begin, char const *end, int flags=0) const |
bool | match (char const *begin, char const *end, std::vector< std::pair< int, int > > &marks, int flags=0) const |
bool | search (char const *begin, char const *end, int flags=0) const |
bool | search (char const *begin, char const *end, std::vector< std::pair< int, int > > &marks, int flags=0) const |
bool | empty () const |
Static Public Attributes | |
static const int | perl = 0 |
Constant for expression type - Perl Compatible Regex. | |
static const int | normal = 0 |
Constant for expression type - synonym of perl, default. | |
static const int | icase = 0x100 |
Make case insensitive comparison New in CppCMS 1.2. More... | |
static const int | utf8 = 0x200 |
Assume that input is UTF-8 so for example '.' would match UTF-8 code point New in CppCMS 1.2. More... | |
This is a simple wrapper of PCRE library.
It is designed to be used with sub_match, match_results, regex_match and regex_search template functions.
It provides API similar to ones of Boost.Regex but it is also much simplified.
booster::regex::regex | ( | regex const & | ) |
Copy regular expression. Note. This is much more efficient then creating a new expression with same patter.
booster::regex::regex | ( | std::string const & | pattern, |
int | flags = normal |
||
) |
Create regular expression using a patter and special flags. Note, at this point flags should be normal or perl only (which are equivalent). May be extended in future.
Throws regex_error in case of invalid expression.
void booster::regex::assign | ( | std::string const & | pattern, |
int | flags = normal |
||
) |
Assigns regular expression using a patter and special flags. Note, at this point flags should be normal or perl only (which are equivalent). May be extended in future.
Throws regex_error in case of invalid expression.
bool booster::regex::empty | ( | ) | const |
Returns true if the expression wasn't assigned.
int booster::regex::flags | ( | ) | const |
Get expression flags. Now always 0.
unsigned booster::regex::mark_count | ( | ) | const |
Get number of captured subexpressions.
bool booster::regex::match | ( | char const * | begin, |
char const * | end, | ||
int | flags = 0 |
||
) | const |
Match the expression in the text in range [begin,end) exactly. Parameter flags currently unused.
Return true if matches
bool booster::regex::match | ( | char const * | begin, |
char const * | end, | ||
std::vector< std::pair< int, int > > & | marks, | ||
int | flags = 0 |
||
) | const |
Match the expression in the text in range [begin,end) exactly. Parameter flags currently unused.
Return true if matches, and stores captured sub-patterns in marks. Each pair represents a text in rage [begin+first,begin+second).
If no such patter was captured, returns (-1,-1) as pair.
Copy regular expression. Note. This is much more efficient then creating a new expression with same patter.
bool booster::regex::search | ( | char const * | begin, |
char const * | end, | ||
int | flags = 0 |
||
) | const |
Search the expression in the text in range [begin,end). Parameter flags currently unused.
Return true if found.
bool booster::regex::search | ( | char const * | begin, |
char const * | end, | ||
std::vector< std::pair< int, int > > & | marks, | ||
int | flags = 0 |
||
) | const |
Search the expression in the text in range [begin,end). Parameter flags currently unused.
Return true if found, and stores captured sub-patterns in marks. Each pair represents a text in rage [begin+first,begin+second).
If no such patter was captured, returns (-1,-1) as pair.
std::string booster::regex::str | ( | ) | const |
Get the string that the regular expression was created with.
|
static |
Make case insensitive comparison New in CppCMS 1.2.
|
static |
Assume that input is UTF-8 so for example '.' would match UTF-8 code point New in CppCMS 1.2.