FreeFOAM The Cross-Platform CFD Toolkit
wordRe Class Reference

A wordRe is a word, but can also have a regular expression for matching words. More...

#include <OpenFOAM/wordRe.H>


Detailed Description

A wordRe is a word, but can also have a regular expression for matching words.

By default the constructors will generally preserve the argument as string literal and the assignment operators will use the wordRe::DETECT compOption to scan the string for regular expression meta characters and/or invalid word characters and react accordingly.

The exceptions are when constructing/assigning from another Foam::wordRe (preserve the same type) or from a Foam::word (always literal).

Note:
If the string contents are changed - eg, by the operator+=() or by string::replace(), etc - it will be necessary to use compile() or recompile() to synchronize the regular expression.
Source files

Definition at line 76 of file wordRe.H.

+ Inheritance diagram for wordRe:
+ Collaboration diagram for wordRe:

List of all members.

Public Types

enum  compOption {
  LITERAL = 0, DETECT = 1, REGEXP = 2, NOCASE = 4,
  DETECT_NOCASE = DETECT | NOCASE, REGEXP_NOCASE = REGEXP | NOCASE
}
 Enumeration with compile options. More...

Public Member Functions

 wordRe ()
 Construct null.
 wordRe (const wordRe &)
 Construct as copy.
 wordRe (const word &)
 Construct as copy of word.
 wordRe (const char *, const compOption=LITERAL)
 Construct as copy of character array.
 wordRe (const string &, const compOption=LITERAL)
 Construct as copy of string.
 wordRe (const std::string &, const compOption=LITERAL)
 Construct as copy of std::string.
 wordRe (Istream &)
 Construct from Istream.
bool isPattern () const
 Access.
bool compile () const
 Infrastructure.
bool compile (const compOption) const
 Possibly compile the regular expression, with greater control.
bool recompile () const
 Recompile an existing regular expression.
void uncompile (const bool doStripInvalid=false) const
 Frees precompiled regular expression, making wordRe a literal.
void set (const std::string &, const compOption=DETECT)
 Editing.
void set (const char *, const compOption=DETECT)
 Copy string, auto-test for regular expression or other options.
void clear ()
 Clear string and precompiled regular expression.
bool match (const string &, bool literalMatch=false) const
 Searching.
string quotemeta () const
 Miscellaneous.
Ostreaminfo (Ostream &) const
 Output some basic info.
const wordReoperator= (const wordRe &)
 Assign copy.
const wordReoperator= (const word &)
 Copy word, never a regular expression.
const wordReoperator= (const string &)
 Copy string, auto-test for regular expression.
const wordReoperator= (const std::string &)
 Copy string, auto-test for regular expression.
const wordReoperator= (const char *)
 Copy string, auto-test for regular expression.
- Public Member Functions inherited from word
 word ()
 Construct null.
 word (const word &)
 Construct as copy.
 word (const char *, const bool doStripInvalid=true)
 Construct as copy of character array.
 word (const char *, const size_type, const bool doStripInvalid)
 Construct as copy with a maximum number of characters.
 word (const string &, const bool doStripInvalid=true)
 Construct as copy of string.
 word (const std::string &, const bool doStripInvalid=true)
 Construct as copy of std::string.
 word (Istream &)
 Construct from Istream.
- Public Member Functions inherited from string
 string ()
 Construct null.
 string (const std::string &)
 Construct from std::string.
 string (const char *)
 Construct as copy of character array.
 string (const char *, const size_type)
 Construct as copy of specified number of characters.
 string (const char)
 Construct from a single character.
 string (Istream &)
 Construct from Istream.
size_type count (const char) const
 Count and return the number of a given character in the string.
stringreplace (const string &oldStr, const string &newStr, size_type start=0)
 Replace first occurence of sub-string oldStr with newStr.
stringreplaceAll (const string &oldStr, const string &newStr, size_type start=0)
 Replace all occurences of sub-string oldStr with newStr.
stringexpand ()
 Expand initial tildes and all occurences of environment variables.
bool removeRepeated (const char)
 Remove repeated characters returning true if string changed.
string removeRepeated (const char) const
 Return string with repeated characters removed.
bool removeTrailing (const char)
 Remove trailing character returning true if string changed.
string removeTrailing (const char) const
 Return string with trailing character removed.
string operator() (const size_type i, const size_type n) const
 Return the sub-string from the i-th character for n characters.
string operator() (const size_type n) const
 Return the sub-string from the first character for n characters.

Static Public Member Functions

static bool meta (char)
 Is this a meta character?
static bool isPattern (const string &)
 Test string for regular expression meta characters.
- Static Public Member Functions inherited from word
static bool valid (char)
 Is this character valid for a word.
- Static Public Member Functions inherited from string
template<class String >
static bool valid (const string &)
 Is this string type valid?
template<class String >
static bool meta (const string &, const char quote='\\')
 Does this string have particular meta-characters?
template<class String >
static bool stripInvalid (string &)
 Strip invalid characters from the given string.
template<class String >
static String validate (const string &)
 Return a valid String from the given string.
template<class String >
static string quotemeta (const string &, const char quote='\\')
 Return a String with quoted meta-characters from the given string.

Friends

Istreamoperator>> (Istream &, wordRe &)
Ostreamoperator<< (Ostream &, const wordRe &)

Additional Inherited Members

- Static Public Attributes inherited from word
static const char *const typeName = "word"
static int debug
static const word null
- Static Public Attributes inherited from string

Member Enumeration Documentation

enum compOption

Enumeration with compile options.

Note that 'REGEXP' is implicit if 'NOCASE' is specified alone.

Enumerator:
LITERAL 

treat as a string literal

DETECT 

treat as regular expression

REGEXP 

detect if the string contains meta-characters

NOCASE 

ignore case in regular expression

DETECT_NOCASE 
REGEXP_NOCASE 

Definition at line 91 of file wordRe.H.


Constructor & Destructor Documentation

wordRe ( )
inline

Construct null.

Definition at line 42 of file wordReI.H.

wordRe ( const wordRe str)
inline

Construct as copy.

Definition at line 49 of file wordReI.H.

References wordRe::compile(), and wordRe::isPattern().

wordRe ( const word str)
inline

Construct as copy of word.

Definition at line 61 of file wordReI.H.

wordRe ( const char *  str,
const compOption  opt = LITERAL 
)
inline

Construct as copy of character array.

Optionally specify how it should be treated.

Definition at line 68 of file wordReI.H.

References wordRe::compile().

wordRe ( const string str,
const compOption  opt = LITERAL 
)
inline

Construct as copy of string.

Optionally specify how it should be treated.

Definition at line 77 of file wordReI.H.

References wordRe::compile().

wordRe ( const std::string &  str,
const compOption  opt = LITERAL 
)
inline

Construct as copy of std::string.

Optionally specify how it should be treated.

Definition at line 86 of file wordReI.H.

References wordRe::compile().

wordRe ( Istream is)

Construct from Istream.

Words are treated as literals, strings with an auto-test

Definition at line 32 of file wordReIO.C.


Member Function Documentation

bool meta ( char  c)
inlinestatic

Is this a meta character?

Definition at line 28 of file wordReI.H.

bool isPattern ( const string str)
inlinestatic

Test string for regular expression meta characters.

Definition at line 34 of file wordReI.H.

Referenced by Foam::operator<<(), wordRe::operator=(), and wordRe::wordRe().

bool isPattern ( ) const
inline

Access.

Should be treated as a match rather than a literal string?

Definition at line 97 of file wordReI.H.

bool compile ( ) const
inline

Infrastructure.

Compile the regular expression

Definition at line 137 of file wordReI.H.

Referenced by wordRe::wordRe().

bool compile ( const compOption  opt) const
inline

Possibly compile the regular expression, with greater control.

Definition at line 103 of file wordReI.H.

References wordRe::DETECT, wordRe::NOCASE, and wordRe::REGEXP.

bool recompile ( ) const
inline

Recompile an existing regular expression.

Definition at line 144 of file wordReI.H.

void uncompile ( const bool  doStripInvalid = false) const
inline

Frees precompiled regular expression, making wordRe a literal.

Optionally strips invalid word characters

Definition at line 155 of file wordReI.H.

References word::debug.

void set ( const std::string &  str,
const compOption  opt = DETECT 
)
inline

Editing.

Copy string, auto-test for regular expression or other options

Definition at line 199 of file wordReI.H.

void set ( const char *  str,
const compOption  opt = DETECT 
)
inline

Copy string, auto-test for regular expression or other options.

Definition at line 206 of file wordReI.H.

void clear ( )
inline

Clear string and precompiled regular expression.

Definition at line 171 of file wordReI.H.

References clear().

bool match ( const string str,
bool  literalMatch = false 
) const
inline

Searching.

Smart match as regular expression or as a string

Optionally specify a literal match only

Definition at line 178 of file wordReI.H.

Foam::string quotemeta ( ) const
inline

Miscellaneous.

Return a string with quoted meta-characters

Definition at line 193 of file wordReI.H.

Foam::Ostream & info ( Ostream os) const

Output some basic info.

Definition at line 86 of file wordReIO.C.

References Ostream::flush().

const Foam::wordRe & operator= ( const wordRe str)
inline

Assign copy.

Always case sensitive

Definition at line 215 of file wordReI.H.

References wordRe::isPattern().

const Foam::wordRe & operator= ( const word str)
inline

Copy word, never a regular expression.

Reimplemented from word.

Definition at line 231 of file wordReI.H.

References word::operator=().

const Foam::wordRe & operator= ( const string str)
inline

Copy string, auto-test for regular expression.

Always case sensitive

Reimplemented from word.

Definition at line 239 of file wordReI.H.

const Foam::wordRe & operator= ( const std::string &  str)
inline

Copy string, auto-test for regular expression.

Always case sensitive

Reimplemented from word.

Definition at line 247 of file wordReI.H.

const Foam::wordRe & operator= ( const char *  str)
inline

Copy string, auto-test for regular expression.

Always case sensitive

Reimplemented from word.

Definition at line 255 of file wordReI.H.


Friends And Related Function Documentation

Istream& operator>> ( Istream ,
wordRe  
)
friend
Ostream& operator<< ( Ostream ,
const wordRe  
)
friend

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