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 stringin other words, the last match in the string.

See Also

See the ".NET Framework Regular Expressions" topic in the MSDN documentation.



C# Cookbook
C# 3.0 Cookbook
ISBN: 059651610X
EAN: 2147483647
Year: 2003
Pages: 315

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net