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 () | |
| Default construct, empty literal. More... | |
| wordRe (const wordRe &str) | |
| Copy construct. More... | |
| wordRe (wordRe &&str) | |
| Move construct. More... | |
| wordRe (const word &str) | |
| Implicit copy construct from word, as LITERAL. More... | |
| wordRe (word &&str) | |
| Implicit move construct from word, as LITERAL. More... | |
| wordRe (const std::string &str, const compOption opt=compOption::LITERAL) | |
| Implicit copy construct from other string-types, with specified compile option (default is LITERAL) More... | |
| wordRe (const char *str, const compOption opt=compOption::LITERAL) | |
| Implicit construct from character array, with specified compile option (default is LITERAL) More... | |
| wordRe (const keyType &str) | |
| Implicit copy construct from keyType, using its compile type. More... | |
| wordRe (Istream &is) | |
| Construct from Istream by reading a token. More... | |
| bool | isLiteral () const noexcept |
| The wordRe is a literal string, not a pattern. More... | |
| bool | isPattern () const noexcept |
| The wordRe is a pattern, not a literal string. More... | |
| bool | assign (const token &tok) |
| Assign from word or string token. More... | |
| bool | compile () |
| Compile as regular expression (if possible) More... | |
| void | uncompile () |
| Mark as literal string, remove any regular expression. More... | |
| bool | compile (const compOption opt) |
| Possibly compile the regular expression, with greater control. More... | |
| void | uncompile (bool adjust) |
| Mark as literal string, optionally stripping invalid word characters when changing to a literal. 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... | |
| 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 | |
| Default construct. 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 | 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... | |
| word & | replace_ext (const word &ending) |
| Remove extension (if any) and append a new one. More... | |
| word | lessExt () const |
| Return word without extension (part before last .) 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... | |
| bool | hasExt () const |
| Same as has_ext() More... | |
| bool | hasExt (const std::string &s) const |
| Same as has_ext() More... | |
| bool | removeExt () |
| Same as remove_ext() 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) |
| bool | remove_ext () |
| Remove extension, return true if string changed. More... | |
| bool | has_ext () const |
| Various checks for extensions. More... | |
| bool | has_ext (const char *ending) const |
| Various checks for extensions. More... | |
| bool | has_ext (const std::string &ending) const |
| Various checks for extensions. More... | |
| bool | has_ext (const wordRe &ending) const |
| Various checks for extensions. More... | |
Public Member Functions inherited from string | |
| string ()=default | |
| Default construct. 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) |
| Replace first occurrence of sub-string s1 with s2, beginning at pos. More... | |
| string & | replaceAll (const std::string &s1, const std::string &s2, size_type pos=0) |
| Replace all occurrences of sub-string s1 with s2, beginning at pos in the string. More... | |
| string & | replaceAny (const std::string &s1, const char c2, size_type pos=0) |
| Replace any occurrence of s1 characters with c2, beginning at pos in the string. More... | |
| string & | expand (const bool allowEmpty=false) |
| Inplace expand initial tags, tildes, and all occurrences of environment variables as per stringOps::expand. More... | |
| 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 | contains (char c) const noexcept |
| True if string contains given character (cf. C++23) More... | |
| bool | contains (const std::string &s) const noexcept |
| True if string contains given [string view] substring (cf. C++23) More... | |
| bool | contains (const char *s) const |
| True if string contains given substring (cf. C++23) More... | |
| bool | starts_with (char c) const |
| True if string starts with given character (cf. C++20) More... | |
| bool | starts_with (const std::string &s) const |
| True if string starts with given [string view] prefix (C++20) More... | |
| bool | starts_with (const char *s) const |
| True if string starts with given prefix (C++20) More... | |
| bool | ends_with (char c) const |
| True if string ends with given character (cf. C++20) More... | |
| bool | ends_with (const std::string &s) const |
| True if string ends with given [string view] suffix (cf. C++20) More... | |
| bool | ends_with (const char *s) const |
| True if string ends with given suffix (cf. C++20) More... | |
| size_type | count (const char c) const |
| Count the number of occurrences of the specified character in the string. More... | |
| 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... | |
Static Public Member Functions | |
| static bool | valid (const char c) |
| Test for valid wordRe character? 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) |
| Construct validated word (no invalid characters) from a sequence of characters in the range [first,last),. More... | |
Static Public Member Functions inherited from string | |
| static std::string::size_type | length (const char *s) |
| Length of the character sequence (with nullptr protection) More... | |
| static std::string::size_type | length (const std::string &s) |
| The length of the string. More... | |
| template<class StringType > | |
| static bool | valid (const std::string &str) |
| Does the string contain valid characters only? More... | |
| template<class StringType > | |
| static bool | stripInvalid (std::string &str) |
| Strip invalid characters from the given string. More... | |
| template<class StringType > | |
| static StringType | validate (const std::string &str) |
| Return a valid String 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 | has_ext () const |
| Return true if it has an extension or simply ends with a '.'. More... | |
| bool | has_ext (const char *ending) const |
| Return true if the extension is the same as the given ending. More... | |
| bool | has_ext (const std::string &ending) const |
| Return true if the extension is the same as the given ending. More... | |
| bool | has_ext (const wordRe &ending) const |
| Return true if the extension matches the given ending. More... | |
| bool | remove_path () |
| Remove leading path, return true if string changed. More... | |
| bool | remove_ext () |
| Remove extension, return 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 (for return value). |
| REGEX_ICASE | Combined REGEX and ICASE. |
| DETECT_ICASE | Combined DETECT and ICASE. |
Copy construct.
Definition at line 40 of file wordReI.H.
References wordRe::compile(), and wordRe::isPattern().

|
inline |
Implicit copy construct from other string-types, with specified compile option (default is LITERAL)
Definition at line 72 of file wordReI.H.
References wordRe::compile(), and wordRe::LITERAL.

|
inline |
Implicit construct from character array, with specified compile option (default is LITERAL)
Definition at line 84 of file wordReI.H.
References wordRe::compile(), and wordRe::LITERAL.

Implicit copy construct from keyType, using its compile type.
Definition at line 34 of file wordRe.C.
References wordRe::compile(), and keyType::isPattern().

|
inlinestatic |
Test for valid wordRe character?
Like Foam::word, but with brace-brackets, which are valid for some regexs.
Definition at line 24 of file wordReI.H.
References Foam::constant::universal::c, and word::valid().

|
inlinenoexcept |
The wordRe is a literal string, not a pattern.
Definition at line 98 of file wordReI.H.
Referenced by string::has_ext().

|
inlinenoexcept |
The wordRe is a pattern, not a literal string.
Definition at line 104 of file wordReI.H.
Referenced by fieldSelection::containsPattern(), ZoneMesh< cellZone, polyMesh >::indices(), faBoundaryMesh::indices(), polyBoundaryMesh::indices(), Foam::operator<<(), wordRe::operator=(), triSurfaceLoader::select(), and wordRe::wordRe().

| bool assign | ( | const token & | tok | ) |
Assign from word or string token.
Words are treated as literals, strings with an auto-detect
Definition at line 57 of file wordRe.C.
References Foam::FieldOps::assign(), wordRe::DETECT, token::isQuotedString(), token::isWord(), token::stringToken(), and token::wordToken().
Referenced by Foam::operator>>().


|
inline |
Compile as regular expression (if possible)
Definition at line 152 of file wordReI.H.
Referenced by wordRe::wordRe().

|
inline |
|
inline |
Possibly compile the regular expression, with greater control.
Definition at line 110 of file wordReI.H.
References wordRe::DETECT, wordRe::ICASE, regExpPosix::is_meta(), wordRe::LITERAL, and wordRe::REGEX.

|
inline |
Mark as literal string, optionally stripping invalid word characters when changing to a literal.
Definition at line 175 of file wordReI.H.
References word::debug.
|
inline |
Copy string, auto-test for regular expression or other options.
Definition at line 204 of file wordReI.H.
References Foam::FieldOps::assign().

|
inline |
Copy string, auto-test for regular expression or other options.
Definition at line 211 of file wordReI.H.
References Foam::FieldOps::assign().

|
inline |
Clear string and regular expression.
Definition at line 186 of file wordReI.H.
References clear().
Referenced by zoneMotion::zoneMotion(), zoneToPoint::zones(), zoneToCell::zones(), and zoneToFace::zones().


|
inline |
Swap contents. Self-swapping is a no-op.
Definition at line 219 of file wordReI.H.
References string::swap().

|
inline |
Smart match as regular expression or as a string.
Optionally force a literal match only
Definition at line 193 of file wordReI.H.
Referenced by string::has_ext(), and solverFieldSelection::updateSelection().

|
inline |
Perform smart match on text, as per match()
Allows use as a predicate.
Definition at line 233 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 239 of file wordReI.H.
References Foam::FieldOps::assign(), and wordRe::isPattern().

|
inline |
Copy word, never a regular expression.
Definition at line 258 of file wordReI.H.
References Foam::FieldOps::assign().

| void operator= | ( | const keyType & | str | ) |
Copy keyType and its type (literal or regex)
Always case sensitive
Definition at line 80 of file wordRe.C.
References Foam::FieldOps::assign(), and keyType::isPattern().

|
inline |
Copy string, auto-test for regular expression.
Always case sensitive
Definition at line 265 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 272 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 279 of file wordReI.H.
References Foam::FieldOps::assign(), and wordRe::DETECT.

|
inline |
|
static |
An empty wordRe.
Definition at line 97 of file wordRe.H.
Referenced by faceSetOption::zoneName(), and cellSetOption::zoneName().