Recipe 8.4 Quickly Finding Only the Last Match in a String
Problem
You need to find the last pattern
match in a string, but you do not want the overhead of finding all
matches in a string and having to move to the last match in the
collection of matches.
Solution
Using the
RegexOptions.RightToLeft option, the match starts
at the end of the string and proceeds toward the beginning. The first
found match is the last match in the string. You supply the
RegexOptions.RightToLeft constant as an argument
to the Match method. The instance
Match method can be used as follows:
Regex RE = new Regex(Pattern, RegexOptions.RightToLeft);
Match theMatch = RE.Match(Source);
or use the static Regex.Match method:
Match theMatch = Regex.Match(Source, Pattern, RegexOptions.RightToLeft);
where Pattern is the regular expression
pattern and Source is the string against
which to run the pattern.
Discussion
The RegexOptions.RightToLeft regular expression
option will force the regular expression engine to start searching
for a pattern starting with the end of the string and proceeding
backward toward the beginning of the string. The first match
encountered will be the match closest to the end of the
string-in other words, the last match in the string.
See Also
See the ".NET Framework Regular
Expressions" topic in the MSDN documentation.
|