Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members

FX::FXRex Class Reference

FXRex is a regular expression class implementing a NFA matcher. More...

#include <FXRex.h>

List of all members.

Public Member Functions

 FXRex ()
 FXRex (const FXRex &orig)
 FXRex (const FXchar *pattern, FXint mode=REX_NORMAL, FXRexError *error=NULL)
 FXRex (const FXString &pattern, FXint mode=REX_NORMAL, FXRexError *error=NULL)
FXRexoperator= (const FXRex &orig)
FXbool empty () const
FXRexError parse (const FXchar *pattern, FXint mode=REX_NORMAL)
FXRexError parse (const FXString &pattern, FXint mode=REX_NORMAL)
FXbool match (const FXchar *string, FXint len, FXint *beg=NULL, FXint *end=NULL, FXint mode=REX_FORWARD, FXint npar=1, FXint fm=0, FXint to=2147483647) const
FXbool match (const FXString &string, FXint *beg=NULL, FXint *end=NULL, FXint mode=REX_FORWARD, FXint npar=1, FXint fm=0, FXint to=2147483647) const
 ~FXRex ()

Static Public Member Functions

FXString substitute (const FXchar *string, FXint len, FXint *beg, FXint *end, const FXString &replace, FXint npar=1)
FXString substitute (const FXString &string, FXint *beg, FXint *end, const FXString &replace, FXint npar=1)
const FXchar * getError (FXRexError err)

Friends

FXbool operator== (const FXRex &r1, const FXRex &r2)
FXbool operator!= (const FXRex &r1, const FXRex &r2)
FXStreamoperator<< (FXStream &store, const FXRex &s)
FXStreamoperator>> (FXStream &store, FXRex &s)


Detailed Description

FXRex is a regular expression class implementing a NFA matcher.

It supports capturing parentheses, non-capturing parentheses, positive or negative lookahead, backreferences, case-insensitive matching, counted repetitions, lazy or greedy matches, and PERL-like matching operators. The subject string may be scanned forwards or backwards, and may contain any of 256 possible character values.

When parsing a regular expression pattern, the mode parameter is the bitwise OR of a set of flags and affects the match algorithm. Passing the flag REX_CAPTURE enables capturing parentheses and back references. The flag REX_ICASE enables case-insensitive matching. When the flag REX_NEWLINE is passed, newlines are treated like normal characters; otherwise, newline is NOT matched except when explicitly part of a character class. The flag REX_VERBATIM disables all special character interpretation.

When matching a compiled pattern, the mode parameter is the bitwise OR of a set of flags that affects how the match is performed. Passing the flag REX_BACKWARD causes the match to proceed backwards through the subject string. Passing the flags REX_NOT_BOL and/or REX_NOT_EOL causes the begin and end of the subject string NOT to be considered a line start or line end. The flag REX_NOT_EMPTY causes a match to fail if the empty string was matched.

See also:


Constructor & Destructor Documentation

FX::FXRex::FXRex  )  [inline]
 

Construct empty regular expression object.

FX::FXRex::FXRex const FXRex orig  ) 
 

Copy regular expression object.

FX::FXRex::FXRex const FXchar *  pattern,
FXint  mode = REX_NORMAL,
FXRexError error = NULL
 

Compile expression from pattern; if error is not NULL, error code is returned.

FX::FXRex::FXRex const FXString pattern,
FXint  mode = REX_NORMAL,
FXRexError error = NULL
 

Compile expression from pattern; if error is not NULL, error code is returned.

FX::FXRex::~FXRex  ) 
 

Delete.


Member Function Documentation

FXRex& FX::FXRex::operator= const FXRex orig  ) 
 

Assign another regular expression to this one.

FXbool FX::FXRex::empty  )  const [inline]
 

See if regular expression is empty; the regular expression will be empty when it is unable to parse a pattern due to a syntax error.

FXRexError FX::FXRex::parse const FXchar *  pattern,
FXint  mode = REX_NORMAL
 

Parse pattern, return error code if syntax error is found.

FXRexError FX::FXRex::parse const FXString pattern,
FXint  mode = REX_NORMAL
 

Parse pattern, return error code if syntax error is found.

FXbool FX::FXRex::match const FXchar *  string,
FXint  len,
FXint *  beg = NULL,
FXint *  end = NULL,
FXint  mode = REX_FORWARD,
FXint  npar = 1,
FXint  fm = 0,
FXint  to = 2147483647
const
 

Match a subject string of length len, returning TRUE if a match is found and FALSE otherwise.

The entire pattern is captured in beg[0] and end[0], where beg[0] refers to the position of the first matched character and end[0] refers to the position after the last matched character. Sub expressions from capturing parenthesis i are returned in beg[i] and end[i].

FXbool FX::FXRex::match const FXString string,
FXint *  beg = NULL,
FXint *  end = NULL,
FXint  mode = REX_FORWARD,
FXint  npar = 1,
FXint  fm = 0,
FXint  to = 2147483647
const
 

Search for match in a string.

FXString FX::FXRex::substitute const FXchar *  string,
FXint  len,
FXint *  beg,
FXint *  end,
const FXString replace,
FXint  npar = 1
[static]
 

After performing a regular expression match with capturing parentheses, a substitution string is build from the replace string, where where "&" is replaced by the entire matched pattern, and "\1" through "\9" are replaced by captured expressions.

The original source string and its length, and the match arrays beg and end must be passed.

FXString FX::FXRex::substitute const FXString string,
FXint *  beg,
FXint *  end,
const FXString replace,
FXint  npar = 1
[static]
 

Return substitution string.

const FXchar* FX::FXRex::getError FXRexError  err  )  [inline, static]
 

Returns error code for given error.


Friends And Related Function Documentation

FXbool operator== const FXRex r1,
const FXRex r2
[friend]
 

Comparison operators.

FXStream& operator<< FXStream store,
const FXRex s
[friend]
 

Saving and loading.

Copyright © 1997-2004 Jeroen van der Zijp