A wordRe is a Foam::word, but can contain a regular expression for matching words or strings. More...
Public Types | |
enum | compOption { LITERAL = 0, REGEX = 1, ICASE = 2, NOCASE = 2, DETECT = 4, UNKNOWN = 4, REGEX_ICASE = (REGEX|ICASE), DETECT_ICASE = (DETECT|ICASE) } |
Enumeration with compile options. More... | |
Public Member Functions | |
wordRe () | |
Construct null. More... | |
wordRe (const wordRe &str) | |
Copy construct. More... | |
wordRe (wordRe &&str) | |
Move construct. More... | |
wordRe (const keyType &str) | |
Construct from keyType, using its compile information. More... | |
wordRe (const char *str) | |
Copy from character array, treat as a literal. More... | |
wordRe (const std::string &str) | |
Copy from std::string, treat as a literal. More... | |
wordRe (const string &str) | |
Copy from string, treat as a literal. More... | |
wordRe (const word &str) | |
Copy from word, treat as a literal. More... | |
wordRe (const keyType &str, const compOption opt) | |
Copy from keyType, use specified compile option. More... | |
wordRe (const char *str, const compOption opt) | |
Copy from character array, use specified compile option. More... | |
wordRe (const std::string &str, const compOption opt) | |
Copy from std::string, use specified compile option. More... | |
wordRe (const string &str, const compOption opt) | |
Copy from string, use specified compile option. More... | |
wordRe (const word &str, const compOption opt) | |
Copy from word, use specified compile option. More... | |
wordRe (Istream &is) | |
Construct from Istream. More... | |
bool | isLiteral () const |
The wordRe is treated as literal string, not as pattern. More... | |
bool | isPattern () const |
The wordRe is treated as a pattern, not as literal string. More... | |
bool | compile () |
Compile the regular expression. More... | |
bool | compile (const compOption opt) |
Possibly compile the regular expression, with greater control. More... | |
void | uncompile (bool adjust=false) |
Make wordRe a literal again, instead of a regular expression. More... | |
void | set (const std::string &str, const compOption opt=DETECT) |
Copy string, auto-test for regular expression or other options. More... | |
void | set (const char *str, const compOption opt=DETECT) |
Copy string, auto-test for regular expression or other options. More... | |
void | clear () |
Clear string and regular expression. More... | |
void | swap (wordRe &str) |
Swap contents. Self-swapping is a no-op. More... | |
bool | match (const std::string &text, bool literal=false) const |
Smart match as regular expression or as a string. More... | |
string | quotemeta () const |
Return a string with quoted meta-characters. More... | |
Ostream & | info (Ostream &os) const |
Output some basic info. More... | |
bool | operator() (const std::string &text) const |
Perform smart match on text, as per match() More... | |
void | operator= (const wordRe &str) |
Copy assignment, retaining type (literal or regex) More... | |
void | operator= (const word &str) |
Copy word, never a regular expression. More... | |
void | operator= (const keyType &str) |
Copy keyType and its type (literal or regex) More... | |
void | operator= (const string &str) |
Copy string, auto-test for regular expression. More... | |
void | operator= (const std::string &str) |
Copy string, auto-test for regular expression. More... | |
void | operator= (const char *str) |
Copy string, auto-test for regular expression. More... | |
void | operator= (wordRe &&str) |
Move assignment. More... | |
Public Member Functions inherited from word | |
word ()=default | |
Construct null. More... | |
word (const word &)=default | |
Copy construct. More... | |
word (word &&w)=default | |
Move construct. More... | |
word (const string &s, bool doStrip=true) | |
Copy construct from Foam::string. More... | |
word (string &&s, bool doStrip=true) | |
Move construct from Foam::string. More... | |
word (const std::string &s, bool doStrip=true) | |
Copy construct from std::string. More... | |
word (std::string &&s, bool doStrip=true) | |
Move construct from std::string. More... | |
word (const char *s, bool doStrip=true) | |
Copy from character array. More... | |
word (const char *s, size_type len, bool doStrip) | |
Copy from buffer for a maximum number of characters. More... | |
word (Istream &is) | |
Construct from Istream. More... | |
void | stripInvalid () |
Strip invalid characters from this word. More... | |
word | lessExt () const |
Return word without extension (part before last .) More... | |
word | ext () const |
Return file name extension (part after last .) More... | |
word & | ext (const word &ending) |
Append a '.' and the ending, and return the object. More... | |
bool | hasExt () const |
Return true if it has an extension or simply ends with a '.'. More... | |
bool | hasExt (const word &ending) const |
Return true if the extension is the same as the given ending. More... | |
bool | hasExt (const wordRe &ending) const |
Return true if the extension matches the given ending. More... | |
bool | removeExt () |
Remove extension, returning true if string changed. More... | |
word & | operator= (const word &s) |
Copy assignment, no character validation required. More... | |
word & | operator= (word &&s) |
Move assignment, no character validation required. More... | |
word & | operator= (const string &s) |
Copy assignment from Foam::string, stripping invalid characters. More... | |
word & | operator= (string &&s) |
Move assignment from Foam::string, stripping invalid characters. More... | |
word & | operator= (const std::string &s) |
Copy assignment from std::string, stripping invalid characters. More... | |
word & | operator= (std::string &&s) |
Move assignment from std::string, stripping invalid characters. More... | |
word & | operator= (const char *s) |
Copy, stripping invalid characters. More... | |
template<class PrimitiveType > | |
Foam::word | printf (const char *fmt, const PrimitiveType &val) |
template<class PrimitiveType > | |
Foam::word | printf (const std::string &fmt, const PrimitiveType &val) |
Public Member Functions inherited from string | |
string ()=default | |
Construct null. More... | |
string (const std::string &str) | |
Copy construct from std::string. More... | |
string (std::string &&str) | |
Move construct from std::string. More... | |
string (const char *str) | |
Construct as copy of character array. More... | |
string (const char *str, const size_type len) | |
Construct as copy with a maximum number of characters. More... | |
string (const char c) | |
Construct from a single character. More... | |
string (const size_type len, const char c) | |
Construct fill copies of a single character. More... | |
string (Istream &is) | |
Construct from Istream. More... | |
bool | match (const std::string &text) const |
Test for equality. More... | |
string & | replace (const std::string &s1, const std::string &s2, size_type pos=0) |
string & | replaceAll (const std::string &s1, const std::string &s2, size_type pos=0) |
string & | replaceAny (const std::string &s1, const char c2, size_type pos=0) |
string & | expand (const bool allowEmpty=false) |
bool | removeRepeated (const char character) |
Remove repeated characters. More... | |
bool | removeStart (const std::string &text) |
Remove the given text from the start of the string. More... | |
bool | removeStart (const char c) |
Remove leading character, unless string is a single character. More... | |
bool | removeEnd (const std::string &text) |
Remove the given text from the end of the string. More... | |
bool | removeEnd (const char c) |
Remove trailing character, unless string is a single character. More... | |
void | swap (std::string &str) |
Swap contents. Self-swapping is a no-op. More... | |
bool | operator() (const std::string &text) const |
Test for equality. Allows use as a predicate. More... | |
bool | starts_with (const std::string &s) const |
True if string starts with the given prefix (cf. C++20) More... | |
bool | starts_with (const char c) const |
True if string starts with the given character (cf. C++20) More... | |
bool | ends_with (const std::string &s) const |
True if string ends with the given suffix (cf. C++20) More... | |
bool | ends_with (const char c) const |
True if string ends with the given character (cf. C++20) More... | |
size_type | count (const char c) const |
bool | startsWith (const std::string &s) const |
Deprecated(2019-11) More... | |
bool | endsWith (const std::string &s) const |
Deprecated(2019-11) More... | |
bool | removeTrailing (const char c) |
Deprecated(2019-11) More... | |
template<class String > | |
Foam::string | quotemeta (const std::string &str, const char quote) |
Static Public Member Functions | |
static bool | meta (char c) |
Is this a meta character? More... | |
static bool | valid (char c) |
Is this character valid for a wordRe? More... | |
static bool | isPattern (const std::string &str) |
Test string for regular expression meta characters. More... | |
Static Public Member Functions inherited from word | |
template<class PrimitiveType > | |
static word | printf (const char *fmt, const PrimitiveType &val) |
Use a printf-style formatter for a primitive. More... | |
template<class PrimitiveType > | |
static word | printf (const std::string &fmt, const PrimitiveType &val) |
Use a printf-style formatter for a primitive. More... | |
static bool | valid (char c) |
Is this character valid for a word? More... | |
static word | validate (const std::string &s, const bool prefix=false) |
Construct validated word (no invalid characters). More... | |
static word | validate (const char *first, const char *last, const bool prefix=false) |
Static Public Member Functions inherited from string | |
template<class String > | |
static bool | valid (const std::string &str) |
Does the string contain valid characters only? More... | |
template<class String > | |
static bool | meta (const std::string &str, const char quote='\\') |
Does this string contain meta-characters? More... | |
template<class String > | |
static bool | stripInvalid (std::string &str) |
Strip invalid characters from the given string. More... | |
template<class String > | |
static String | validate (const std::string &str) |
Return a valid String from the given string. More... | |
template<class String > | |
static string | quotemeta (const std::string &str, const char quote='\\') |
Return a String with quoted meta-characters from the given string. More... | |
Static Public Attributes | |
static const wordRe | null |
An empty wordRe. More... | |
Static Public Attributes inherited from word | |
static const char *const | typeName = "word" |
The typeName. More... | |
static int | debug |
Debugging. More... | |
static const word | null |
An empty word. More... | |
Static Public Attributes inherited from string | |
static const char *const | typeName = "string" |
The type name "string". More... | |
static int | debug |
The debug flag. More... | |
static const string | null |
An empty string. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from string | |
std::string::size_type | find_ext () const |
Find position of a file extension dot, return npos on failure. More... | |
word | ext () const |
Return file name extension (part after last .) More... | |
bool | ext (const word &ending) |
Append a '.' and the ending. More... | |
bool | hasPath () const |
Return true if it contains a '/' character. More... | |
bool | hasExt () const |
Return true if it has an extension or simply ends with a '.'. More... | |
bool | hasExt (const word &ending) const |
Return true if the extension is the same as the given ending. More... | |
bool | hasExt (const wordRe &ending) const |
Return true if the extension matches the given ending. More... | |
bool | removeExt () |
Remove extension, returning true if string changed. More... | |
bool | removePath () |
Remove leading path, returning true if string changed. More... | |
Static Protected Member Functions inherited from string | |
static std::string::size_type | find_ext (const std::string &str) |
Find position of a file extension dot, return npos on failure. More... | |
template<class PrimitiveType > | |
static std::string::size_type | string_printf (std::string &output, const char *fmt, const PrimitiveType &val) |
A printf-style formatter for a primitive. More... | |
template<class PrimitiveType > | |
static std::string::size_type | string_printf (std::string &output, const std::string &fmt, const PrimitiveType &val) |
A printf-style formatter for a primitive. More... | |
A wordRe is a Foam::word, but can contain a regular expression for matching words or strings.
By default the constructors will generally preserve the argument as a 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).
enum compOption |
Enumeration with compile options.
Note that 'REGEX' is implicit if 'ICASE' is specified alone.
Enumerator | |
---|---|
LITERAL | String literal. |
REGEX | Regular expression. |
ICASE | Ignore case in regular expression. |
NOCASE |
|
DETECT | Detect if the string contains meta-characters. |
UNKNOWN | Unknown content. |
REGEX_ICASE | Combined REGEX and ICASE. |
DETECT_ICASE | Combined DETECT and ICASE. |
Copy construct.
Definition at line 58 of file wordReI.H.
References wordRe::compile(), and wordRe::isPattern().
Construct from keyType, using its compile information.
Definition at line 77 of file wordReI.H.
References wordRe::compile(), and keyType::isPattern().
|
inlineexplicit |
|
inlineexplicit |
|
inline |
Copy from keyType, use specified compile option.
Definition at line 117 of file wordReI.H.
References wordRe::compile(), and keyType::isPattern().
|
inline |
Copy from character array, use specified compile option.
Definition at line 129 of file wordReI.H.
References wordRe::compile().
|
inline |
Copy from std::string, use specified compile option.
Definition at line 137 of file wordReI.H.
References wordRe::compile().
|
inline |
Copy from string, use specified compile option.
Definition at line 145 of file wordReI.H.
References wordRe::compile().
|
inline |
Copy from word, use specified compile option.
Definition at line 153 of file wordReI.H.
References wordRe::compile().
|
inlinestatic |
Is this a meta character?
Definition at line 31 of file wordReI.H.
References Foam::constant::universal::c, and regExpCxx::meta().
|
inlinestatic |
Is this character valid for a wordRe?
This is largely identical with what word accepts, but also permit brace-brackets, which are valid for some regexs.
Definition at line 37 of file wordReI.H.
References Foam::constant::universal::c, and keyType::valid().
|
inlinestatic |
Test string for regular expression meta characters.
Definition at line 43 of file wordReI.H.
Referenced by fieldSelection::containsPattern(), Foam::operator<<(), wordRe::operator=(), triSurfaceLoader::select(), and wordRe::wordRe().
|
inline |
|
inline |
|
inline |
Compile the regular expression.
Definition at line 206 of file wordReI.H.
Referenced by wordRe::wordRe().
|
inline |
Possibly compile the regular expression, with greater control.
Definition at line 175 of file wordReI.H.
References wordRe::DETECT, wordRe::ICASE, and wordRe::REGEX.
|
inline |
Make wordRe a literal again, instead of a regular expression.
Optionally strip invalid word characters.
Definition at line 212 of file wordReI.H.
References word::debug.
|
inline |
Copy string, auto-test for regular expression or other options.
Definition at line 246 of file wordReI.H.
References Foam::FieldOps::assign().
|
inline |
Copy string, auto-test for regular expression or other options.
Definition at line 253 of file wordReI.H.
References Foam::FieldOps::assign().
|
inline |
|
inline |
Swap contents. Self-swapping is a no-op.
Definition at line 260 of file wordReI.H.
References string::swap().
Smart match as regular expression or as a string.
Optionally force a literal match only
Definition at line 229 of file wordReI.H.
Referenced by string::hasExt(), and solverFieldSelection::updateSelection().
|
inline |
Foam::Ostream & info | ( | Ostream & | os | ) | const |
|
inline |
Perform smart match on text, as per match()
Allows use as a predicate.
Definition at line 274 of file wordReI.H.
References Foam::stringOps::match().
|
inline |
Copy assignment, retaining type (literal or regex)
Self-assignment is a no-op.
Definition at line 280 of file wordReI.H.
References Foam::FieldOps::assign(), and wordRe::isPattern().
|
inline |
Copy word, never a regular expression.
Definition at line 299 of file wordReI.H.
References Foam::FieldOps::assign().
|
inline |
Copy keyType and its type (literal or regex)
Always case sensitive
Definition at line 306 of file wordReI.H.
References Foam::FieldOps::assign(), and keyType::isPattern().
|
inline |
Copy string, auto-test for regular expression.
Always case sensitive
Definition at line 320 of file wordReI.H.
References Foam::FieldOps::assign(), and wordRe::DETECT.
|
inline |
Copy string, auto-test for regular expression.
Always case sensitive
Definition at line 327 of file wordReI.H.
References Foam::FieldOps::assign(), and wordRe::DETECT.
|
inline |
Copy string, auto-test for regular expression.
Always case sensitive
Definition at line 334 of file wordReI.H.
References Foam::FieldOps::assign(), and wordRe::DETECT.
|
inline |
|
static |