BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Private Member Functions | Private Attributes | List of all members
BALL::RegularExpression Class Reference

#include <BALL/DATATYPE/regularExpression.h>

Public Member Functions

Constructors and Destructors
 RegularExpression ()
 Default constructor. More...
 
 RegularExpression (const RegularExpression &regular_expression)
 Copy constructor. More...
 
 RegularExpression (const String &pattern, bool wildcard_pattern=false)
 
virtual ~RegularExpression ()
 Destructor. More...
 
virtual void clear ()
 Reset the object attributes to their default values. More...
 
void destroy ()
 Destroy the instance. More...
 
Assignment
RegularExpressionoperator= (const RegularExpression &expression)
 Assignment operator. More...
 
void set (const RegularExpression &regular_expression)
 Assign from another instance. More...
 
void set (const String &pattern, bool wildcard_pattern=false)
 Assign from a string. More...
 
void get (RegularExpression &regular_expression) const
 Assign to another instance. More...
 
Predicates
bool isEmpty () const
 
bool operator== (const RegularExpression &regular_expression) const
 
bool operator!= (const RegularExpression &regular_expression) const
 
bool operator< (const RegularExpression &regular_expression) const
 
bool operator<= (const RegularExpression &regular_expression) const
 
bool operator>= (const RegularExpression &regular_expression) const
 
bool operator> (const RegularExpression &regular_expression) const
 
Debugging and Diagnostics
virtual bool isValid () const
 
virtual void dump (std::ostream &s=std::cout, Size depth=0) const
 

Static Public Attributes

String constants
static const String ALPHA
 
static const String ALPHANUMERIC
 
static const String REAL
 
static const String IDENTIFIER
 
static const String INTEGER
 
static const String HEXADECIMAL_INTEGER
 
static const String LOWERCASE
 
static const String NON_ALPHA
 
static const String NON_ALPHANUMERIC
 
static const String NON_NUMERIC
 
static const String NON_WHITESPACE
 
static const String UPPERCASE
 
static const String WHITESPACE
 

Private Member Functions

void compilePattern_ ()
 
void toExtendedRegularExpression_ ()
 

Private Attributes

regex_t regex_
 
String pattern_
 
bool valid_pattern_
 

Friends

Storers
BALL_EXPORT friend std::ostream & operator<< (std::ostream &s, const RegularExpression &regular_expression)
 
BALL_EXPORT friend std::istream & operator>> (std::istream &s, RegularExpression &regular_expression)
 

Accessors

const StringgetPattern () const
 Get the expression pattern. More...
 
Size countSubexpressions () const
 Count subexpressions. More...
 
bool match (const String &text, Index from=0, int execute_flags=0) const
 
bool match (const Substring &text, Index from=0, int execute_flags=0) const
 
bool match (const char *text, int execute_flags=0) const
 
bool find (const String &text, Substring &found, Index from=0, int execute_flags=0) const
 
bool find (const String &text, vector< Substring > &subexpressions, Index from=0, int execute_flags=0) const
 
static bool match (const char *text, const char *pattern, int compile_flags=0|REG_EXTENDED|REG_NOSUB, int execute_flags=0)
 

Detailed Description

Regular expression class

Definition at line 54 of file regularExpression.h.

Constructor & Destructor Documentation

BALL::RegularExpression::RegularExpression ( )

Default constructor.

BALL::RegularExpression::RegularExpression ( const RegularExpression regular_expression)

Copy constructor.

BALL::RegularExpression::RegularExpression ( const String pattern,
bool  wildcard_pattern = false 
)
virtual BALL::RegularExpression::~RegularExpression ( )
virtual

Destructor.

Member Function Documentation

virtual void BALL::RegularExpression::clear ( )
virtual

Reset the object attributes to their default values.

void BALL::RegularExpression::compilePattern_ ( )
private
Size BALL::RegularExpression::countSubexpressions ( ) const

Count subexpressions.

void BALL::RegularExpression::destroy ( )

Destroy the instance.

virtual void BALL::RegularExpression::dump ( std::ostream &  s = std::cout,
Size  depth = 0 
) const
virtual

Dump this instance to an ostream depth is normaly just used for internal use.

Parameters
sthe ostream, default is the standard output
depththe indentation depth of the output
bool BALL::RegularExpression::find ( const String text,
Substring found,
Index  from = 0,
int  execute_flags = 0 
) const

Find this expression in a string

Parameters
fromindex in the string to start the matching
foundthe result is stored as a substring here
execute_flags?????
Exceptions
Exception::IndexUnderflowif from < 0
Exception::IndexOverflowif from >= text.size()
bool BALL::RegularExpression::find ( const String text,
vector< Substring > &  subexpressions,
Index  from = 0,
int  execute_flags = 0 
) const

Find this expression in a string

Parameters
textto process
subexpressionsthe results are stored here
fromindex in the string to start the matching
execute_flags?????
Exceptions
Exception::IndexUnderflowif from < 0
Exception::IndexOverflowif from >= text.size()
void BALL::RegularExpression::get ( RegularExpression regular_expression) const

Assign to another instance.

const String& BALL::RegularExpression::getPattern ( ) const

Get the expression pattern.

bool BALL::RegularExpression::isEmpty ( ) const

Test if expression is empty.

virtual bool BALL::RegularExpression::isValid ( ) const
virtual

Test if instance is valid.

static bool BALL::RegularExpression::match ( const char *  text,
const char *  pattern,
int  compile_flags = 0|REG_EXTENDED|REG_NOSUB,
int  execute_flags = 0 
)
static

Match a text with a given pattern.

Parameters
textto process
patternto compare with
compile_flags?????
execute_flags?????
Exceptions
NullPointerif text or pattern are NULL
bool BALL::RegularExpression::match ( const String text,
Index  from = 0,
int  execute_flags = 0 
) const

Match a text with this regular expression.

Parameters
textto process
fromindex in the string to start the matching
execute_flags?????
Exceptions
Exception::IndexUnderflowif from < 0
Exception::IndexOverflowif from > text.size()
bool BALL::RegularExpression::match ( const Substring text,
Index  from = 0,
int  execute_flags = 0 
) const

Match a substring with this regular expression.

Parameters
textto process
fromindex in the substring to start the matching
execute_flags?????
Exceptions
Exception::InvalidSubstringif text is invalid
Exception::IndexUnderflowif from < 0
Exception::IndexOverflowif from > text.size()
bool BALL::RegularExpression::match ( const char *  text,
int  execute_flags = 0 
) const

Match a C-String with this regular expression.

Parameters
textto process
execute_flags?????
Exceptions
NullPointerif text is NULL
bool BALL::RegularExpression::operator!= ( const RegularExpression regular_expression) const

Inequality operator

bool BALL::RegularExpression::operator< ( const RegularExpression regular_expression) const

Less operator

bool BALL::RegularExpression::operator<= ( const RegularExpression regular_expression) const

Less or equal operator

RegularExpression& BALL::RegularExpression::operator= ( const RegularExpression expression)

Assignment operator.

bool BALL::RegularExpression::operator== ( const RegularExpression regular_expression) const

Equality operator

bool BALL::RegularExpression::operator> ( const RegularExpression regular_expression) const

Greater operator

bool BALL::RegularExpression::operator>= ( const RegularExpression regular_expression) const

Greater or equal operator

void BALL::RegularExpression::set ( const RegularExpression regular_expression)

Assign from another instance.

void BALL::RegularExpression::set ( const String pattern,
bool  wildcard_pattern = false 
)

Assign from a string.

void BALL::RegularExpression::toExtendedRegularExpression_ ( )
private

Friends And Related Function Documentation

BALL_EXPORT friend std::ostream& operator<< ( std::ostream &  s,
const RegularExpression regular_expression 
)
friend

output operator

BALL_EXPORT friend std::istream& operator>> ( std::istream &  s,
RegularExpression regular_expression 
)
friend

input operator

Member Data Documentation

const String BALL::RegularExpression::ALPHA
static

alphabetic letters.

Definition at line 66 of file regularExpression.h.

const String BALL::RegularExpression::ALPHANUMERIC
static

alphanumeric letters

Definition at line 70 of file regularExpression.h.

const String BALL::RegularExpression::HEXADECIMAL_INTEGER
static

hexadecimal and integer characters

Definition at line 86 of file regularExpression.h.

const String BALL::RegularExpression::IDENTIFIER
static

identifier characters

Definition at line 78 of file regularExpression.h.

const String BALL::RegularExpression::INTEGER
static

integer characters

Definition at line 82 of file regularExpression.h.

const String BALL::RegularExpression::LOWERCASE
static

lowercase letters

Definition at line 90 of file regularExpression.h.

const String BALL::RegularExpression::NON_ALPHA
static

non alphabetic characters

Definition at line 94 of file regularExpression.h.

const String BALL::RegularExpression::NON_ALPHANUMERIC
static

non alphanumeric characters

Definition at line 98 of file regularExpression.h.

const String BALL::RegularExpression::NON_NUMERIC
static

non numeric characters

Definition at line 102 of file regularExpression.h.

const String BALL::RegularExpression::NON_WHITESPACE
static

non whitespace charcters

Definition at line 106 of file regularExpression.h.

String BALL::RegularExpression::pattern_
private

Definition at line 298 of file regularExpression.h.

const String BALL::RegularExpression::REAL
static

real numbers

Definition at line 74 of file regularExpression.h.

regex_t BALL::RegularExpression::regex_
private

Definition at line 296 of file regularExpression.h.

const String BALL::RegularExpression::UPPERCASE
static

uppercase letters.

Definition at line 110 of file regularExpression.h.

bool BALL::RegularExpression::valid_pattern_
private

Definition at line 299 of file regularExpression.h.

const String BALL::RegularExpression::WHITESPACE
static

whitespace characters.

Definition at line 114 of file regularExpression.h.