#include <PosixRegEx.hpp>
Public Types | |
typedef regmatch_t | match_t |
POSIX RegEx structure for captured substring offset pair. | |
typedef blocxx::Array< match_t > | MatchArray |
Array of captured substring offsets. | |
Public Member Functions | |
PosixRegEx () | |
Create a new PosixRegEx object without compilation. | |
PosixRegEx (const String ®ex, int cflags=REG_EXTENDED) | |
Create a new PosixRegEx object and compile the regular expression. | |
PosixRegEx (const PosixRegEx &ref) | |
Create a new PosixRegEx as (deep) copy of the specified reference. | |
~PosixRegEx () | |
Destroy this PosixRegEx object. | |
PosixRegEx & | operator= (const PosixRegEx &ref) |
Assign the specified PosixRegEx reference. | |
bool | compile (const String ®ex, int cflags=REG_EXTENDED) |
Compile the regular expression contained in the string. | |
int | errorCode () |
Return the last error code generated by compile or one of the executing methods. | |
String | errorString () const |
Return the error message string for the last error code. | |
String | patternString () const |
int | compileFlags () const |
bool | isCompiled () const |
bool | execute (MatchArray &sub, const String &str, size_t index=0, size_t count=0, int eflags=0) |
Execute regular expression matching against the string. | |
StringArray | capture (const String &str, size_t index=0, size_t count=0, int eflags=0) |
Search in string and return an array of captured substrings. | |
String | replace (const String &str, const String &rep, bool global=false, int eflags=0) |
Replace (substitute) the first or all matching substrings. | |
StringArray | split (const String &str, bool empty=false, int eflags=0) |
Split the specified string into an array of substrings. | |
StringArray | grep (const StringArray &src, int eflags=0) |
Match all strings in the array against regular expression. | |
bool | match (const String &str, size_t index=0, int eflags=0) const |
Execute regular expression matching against the string. | |
Private Attributes | |
bool | compiled |
int | m_flags |
int | m_ecode |
String | m_error |
String | m_rxstr |
regex_t | m_regex |
Depends on avaliability of a POSIX.2 / SUSv2 conforming regcomp(3) and regexec(3) function implementation.
Consult the regcomp(3), regexec(3) and regex(7) manual pages for informations about details of the posix regex usage.
Definition at line 58 of file PosixRegEx.hpp.
|
POSIX RegEx structure for captured substring offset pair. The regex match structure contains two member variables:
Definition at line 67 of file PosixRegEx.hpp. |
|
Array of captured substring offsets.
Definition at line 72 of file PosixRegEx.hpp. |
|
Create a new PosixRegEx object without compilation.
Definition at line 119 of file PosixRegEx.cpp. |
|
Create a new PosixRegEx object and compile the regular expression. See also compile() method.
Definition at line 128 of file PosixRegEx.cpp. References BLOCXX_THROW_ERR, compile(), errorString(), and m_ecode. |
|
Create a new PosixRegEx as (deep) copy of the specified reference. If the reference is compiled, the new object will be compiled as well.
Definition at line 142 of file PosixRegEx.cpp. References BLOCXX_THROW_ERR, compile(), compiled, errorString(), m_ecode, m_flags, and m_rxstr. |
|
Destroy this PosixRegEx object.
Definition at line 157 of file PosixRegEx.cpp. |
|
Search in string and return an array of captured substrings.
Definition at line 323 of file PosixRegEx.cpp. References BLOCXX_THROW, compiled, execute(), match(), BLOCXX_NAMESPACE::Array< T >::push_back(), and BLOCXX_NAMESPACE::String::substring(). |
|
Compile the regular expression contained in the string.
cflags parameter can be set to one or a bitwise-or of the following flags. Consult the regcomp manual page for the complete (library specific) flag list and detailed description.
Definition at line 193 of file PosixRegEx.cpp. References BLOCXX_NAMESPACE::String::c_str(), compiled, BLOCXX_NAMESPACE::String::erase(), BLOCXX_NAMESPACE::getError(), m_ecode, m_error, m_flags, m_regex, and m_rxstr. Referenced by operator=(), and PosixRegEx(). |
|
Definition at line 244 of file PosixRegEx.cpp. References m_flags. |
|
Return the last error code generated by compile or one of the executing methods.
Definition at line 220 of file PosixRegEx.cpp. References m_ecode. |
|
Return the error message string for the last error code.
Definition at line 228 of file PosixRegEx.cpp. References m_error. Referenced by grep(), operator=(), PosixRegEx(), and replace(). |
|
Execute regular expression matching against the string. The matching starts at the specified index and return true on match of false if no match found.
count . If the default value of 0 is used, the count as detected by compile is used instead.
sub array will be empty and false is returned. If a match is found and the expression was compiled to capture substrings, the sub array will be filled with the captured substring offset (match_t structures). The first (index 0) offset pair points to the start of the first match and the end of the last match. Unused / optional capturing subpattern offsets will be set to -1.Consult the regexec(3) and regex(7) manual pages for complete and detailed descriptions.
eflags parameter can be set to 0, one or a bitwise-or of the following options:
Definition at line 260 of file PosixRegEx.cpp. References BLOCXX_THROW, compiled, and BLOCXX_NAMESPACE::String::length(). |
|
Match all strings in the array against regular expression. Returns an array of matching strings.
Definition at line 477 of file PosixRegEx.cpp. References BLOCXX_NAMESPACE::Array< T >::begin(), BLOCXX_THROW, BLOCXX_THROW_ERR, compiled, BLOCXX_NAMESPACE::Array< T >::empty(), BLOCXX_NAMESPACE::Array< T >::end(), BLOCXX_NAMESPACE::String::erase(), errorString(), BLOCXX_NAMESPACE::getError(), m_ecode, m_error, and BLOCXX_NAMESPACE::Array< T >::push_back(). |
|
Definition at line 252 of file PosixRegEx.cpp. References compiled. |
|
Execute regular expression matching against the string. The matching starts at the specified index and return true on match of false if no match found.
See execute() method for description of the
Definition at line 516 of file PosixRegEx.cpp. References BLOCXX_THROW, compiled, and BLOCXX_NAMESPACE::String::length(). |
|
Assign the specified PosixRegEx reference. If the reference is compiled, the current object will be (re)compiled.
Definition at line 168 of file PosixRegEx.cpp. References BLOCXX_THROW_ERR, compile(), compiled, BLOCXX_NAMESPACE::String::erase(), errorString(), m_ecode, m_error, m_flags, m_regex, and m_rxstr. |
|
Definition at line 236 of file PosixRegEx.cpp. References m_rxstr. |
|
Replace (substitute) the first or all matching substrings.
Substring(s) matching regular expression are replaced with the string provided in The rep string can contain capturing references "\\1" to "\\9" that will be substituted with the corresponding captured string. Prepended "\\" before the reference disables (switches to skip) the substitution. Note, the notation using double-slash followed by a digit character, not just "\1" like the "\n" escape sequence.
Definition at line 368 of file PosixRegEx.cpp. References BLOCXX_THROW, BLOCXX_THROW_ERR, compiled, BLOCXX_NAMESPACE::String::erase(), errorString(), execute(), BLOCXX_NAMESPACE::String::length(), m_ecode, m_error, match(), BLOCXX_NAMESPACE::substitute_caps(), and BLOCXX_NAMESPACE::String::substring(). |
|
Split the specified string into an array of substrings. The regular expression is used to match the separators. If the empty flag is true, empty substring are included in the resulting array. If no separators were found, and the empty flag is true, the array will contain the input string as its only element. If the empty flag is false, a empty array is returned.
Definition at line 420 of file PosixRegEx.cpp. References BLOCXX_THROW, compiled, BLOCXX_NAMESPACE::String::empty(), BLOCXX_NAMESPACE::String::erase(), execute(), BLOCXX_NAMESPACE::String::length(), m_ecode, m_error, match(), BLOCXX_NAMESPACE::Array< T >::push_back(), and BLOCXX_NAMESPACE::String::substring(). |
|
Definition at line 408 of file PosixRegEx.hpp. Referenced by capture(), compile(), execute(), grep(), isCompiled(), match(), operator=(), PosixRegEx(), replace(), split(), and ~PosixRegEx(). |
|
Definition at line 410 of file PosixRegEx.hpp. Referenced by compile(), errorCode(), grep(), operator=(), PosixRegEx(), replace(), and split(). |
|
Definition at line 411 of file PosixRegEx.hpp. Referenced by compile(), errorString(), grep(), operator=(), replace(), and split(). |
|
Definition at line 409 of file PosixRegEx.hpp. Referenced by compile(), compileFlags(), operator=(), and PosixRegEx(). |
|
Definition at line 413 of file PosixRegEx.hpp. Referenced by compile(), operator=(), and ~PosixRegEx(). |
|
Definition at line 412 of file PosixRegEx.hpp. Referenced by compile(), operator=(), patternString(), and PosixRegEx(). |