Lexical String Searching
RWUString provides several pattern matching methods based on simple lexical comparisons of the code units in the strings:
The
contains() method returns
true if a string contains a given pattern.
The
index() method returns the index of the first occurrence of a pattern match, or
RW_NPOS if the pattern is not found. For example, assuming
pattern and
text are
RWUString objects:
int32_t location = text.index(pattern);
if (location == RW_NPOS) {
std::cout << "Pattern not found." << std::endl;
} else {
std::cout << "Pattern found at location: " << location
<< std::endl;
}
The
rindex() method returns the index of the last occurrence of a pattern match, or
RW_NPOS if the pattern is not found.
The
substring() method returns a substring representing the first occurrence of a match. The returned substring can be used as an lvalue to replace a pattern in a string. For example, this code replaces the first occurrence of
pattern in
text with
RWUString replacement:
text.subString(pattern) = replacement;