January 2004
Beginner to intermediate
864 pages
22h 18m
English
You need to find a specific occurrence of a match within a string. For example, you want to find the third occurrence of a word or the second occurrence of a Social Security Number. In addition, you may need to find every third occurrence of a word in a string.
To find a particular occurrence of a match
in a string, simply subscript the array returned from
Regex.Matches:
public static Match FindOccurrenceOf(string source, string pattern,
int occurrence)
{
if (occurrence < 1)
{
throw (new ArgumentException("Cannot be less than 1",
"occurrence"));
}
// Make occurrence zero-based
--occurrence;
// Run the regex once on the source string
Regex RE = new Regex(pattern, RegexOptions.Multiline);
MatchCollection theMatches = RE.Matches(source);
if (occurrence >= theMatches.Count)
{
return (null);
}
else
{
return (theMatches[occurrence]);
}
}To find each particular occurrence of a match in a string, build an
ArrayList on the fly:
public static ArrayList FindEachOccurrenceOf(string source, string pattern,
int occurrence)
{
ArrayList occurrences = new ArrayList( );
// Run the regex once on the source string
Regex RE = new Regex(pattern, RegexOptions.Multiline);
MatchCollection theMatches = RE.Matches(source);
for (int index = (occurrence - 1);
index < theMatches.Count; index += occurrence)
{
occurrences.Add(theMatches[index]);
}
return (occurrences);
}The following method shows how to invoke the two previous methods:
public static ...