WvStreams
|
WvRegex -- Unified support for regular expressions. More...
#include <wvregex.h>
Public Types | |
enum | CFlags { BASIC = 0, EXTENDED = REG_EXTENDED, ICASE = REG_ICASE, NOSUB = REG_NOSUB, NEWLINE = REG_NEWLINE } |
Flags that affect interpretation of the regex; used in Regex() and set() | |
enum | EFlags { NOTBOL = REG_NOTBOL, NOTEOL = REG_NOTEOL } |
Flags that affect matching of regex. More... | |
Public Member Functions | |
WvRegex () | |
Construct an empty regex object. | |
WvRegex (WvStringParm regex, int cflags=default_cflags) | |
Construct a regex object, compiling the given regex. | |
bool | set (WvStringParm regex, int cflags=default_cflags) |
Replace the current regex to match with a new one. | |
bool | match (WvStringParm string, WVREGEX_REGS_DECL) const |
Match a given string against the compiled regular expression. | |
bool | match (WvStringParm string, int eflags, WVREGEX_REGS_DECL) const |
Match a given string against the compiled regular expression. | |
bool | continuable_match (WvStringParm string, int &match_start, int &match_end, WVREGEX_REGS_DECL) const |
Match a given string against the compiled regular expression, capturing the start and end positions of the matching string. | |
bool | continuable_match (WvStringParm string, int eflags, int &match_start, int &match_end, WVREGEX_REGS_DECL) const |
Match a given string against the compiled regular expression, capturing the start and end positions of the matching string. | |
virtual bool | isok () const |
By default, returns true if geterr() == 0. | |
virtual int | geterr () const |
If isok() is false, return the system error number corresponding to the error, -1 for a special error string (which you can obtain with errstr()) or 0 on end of file. | |
virtual WvString | errstr () const |
void | seterr (WvStringParm specialerr) |
void | seterr (WVSTRING_FORMAT_DECL) |
void | seterr (const WvErrorBase &err) |
void | seterr_both (int _errnum, WvStringParm specialerr) |
void | seterr_both (int _errnum, WVSTRING_FORMAT_DECL) |
void | noerr () |
Reset our error state - there's no error condition anymore. | |
Static Public Member Functions | |
static WvString | strerror (int errnum) |
A replacement for the operating system ::strerror() function that can map more kinds of error strings (especially in win32). | |
Static Public Attributes | |
static const int | default_cflags = WvRegex::EXTENDED |
static const int | default_eflags = 0 |
static WvString | __wvre_null_reg |
Internal use only. | |
Protected Attributes | |
int | errnum |
WvString | errstring |
WvRegex -- Unified support for regular expressions.
Supports matching compiled regular expressions and capturing substrings in registers. !
enum WvRegex::EFlags |
Flags that affect matching of regex.
Used in match() and continuable_match()
WvRegex::WvRegex | ( | ) | [inline] |
WvRegex::WvRegex | ( | WvStringParm | regex, |
int | cflags = default_cflags |
||
) | [inline] |
bool WvRegex::set | ( | WvStringParm | regex, |
int | cflags = default_cflags |
||
) |
Replace the current regex to match with a new one.
regex | The new regular expression to match |
cflags | CFlags used to compile the regular expression; the defaults are case sensitive, extended RE. |
Definition at line 27 of file wvregex.cc.
bool WvRegex::match | ( | WvStringParm | string, |
WVREGEX_REGS_DECL | |||
) | const [inline] |
bool WvRegex::match | ( | WvStringParm | string, |
int | eflags, | ||
WVREGEX_REGS_DECL | |||
) | const [inline] |
bool WvRegex::continuable_match | ( | WvStringParm | string, |
int & | match_start, | ||
int & | match_end, | ||
WVREGEX_REGS_DECL | |||
) | const [inline] |
Match a given string against the compiled regular expression, capturing the start and end positions of the matching string.
string | The string to match |
match_start | If the match succeeds, the starting index of the match in string |
match_end | If the match succeeds, the index of the character in string following the last character of the match |
(remaining) | WvString registers to capture substring matches as specified in the RE |
extern WvString line; int start = 0; WvString match; int match_start, match_end; while (re.continuable_match(&line[start], match_start, match_end, match)) { wvout->print("Matching substring is '%s'@[%s,%s)\n", match, match_start, match_end); start += match_end; }
Definition at line 230 of file wvregex.h.
Referenced by strcoll_split().
bool WvRegex::continuable_match | ( | WvStringParm | string, |
int | eflags, | ||
int & | match_start, | ||
int & | match_end, | ||
WVREGEX_REGS_DECL | |||
) | const [inline] |
Match a given string against the compiled regular expression, capturing the start and end positions of the matching string.
string | The string to match |
eflags | EFlags that affect matching |
match_start | If the match succeeds, the starting index of the match in string |
match_end | If the match succeeds, the index of the character in string following the last character of the match |
(remaining) | WvString registers to capture substring matches as specified in the RE |
virtual bool WvErrorBase::isok | ( | ) | const [inline, virtual, inherited] |
By default, returns true if geterr() == 0.
Might be overridden so that isok() == false even though no error code has been specified.
Reimplemented in WvEncoderStream, WvReadLineStream, WvTCPConn, WvNullListener, WvFdStream, WvLog, WvStream, WvStreamClone, WvSSLStream, IWvStream, WvDBusServer, WvDSAKey, WvTimeStream, WvBufStream, WvListener, WvTimeoutStream, WvIStreamList, and _WvConStream.
Definition at line 39 of file wverror.h.
Referenced by WvGlob::set().
virtual int WvErrorBase::geterr | ( | ) | const [inline, virtual, inherited] |
If isok() is false, return the system error number corresponding to the error, -1 for a special error string (which you can obtain with errstr()) or 0 on end of file.
If isok() is true, returns an undefined number.
Reimplemented in WvStreamClone, and WvDBusServer.
Definition at line 48 of file wverror.h.
Referenced by UniIniGen::commit(), UniFileSystemGen::get(), WvStreamClone::geterr(), WvEncoderStream::isok(), UniConfDaemon::listen(), UniIniGen::refresh(), WvStream::seterr(), and WvMagicCircle::WvMagicCircle().
void WvErrorBase::noerr | ( | ) | [inline, inherited] |