3.11. Iterate over All Matches
Problem
The previous recipe shows how a regex could be applied repeatedly to a string to get a list of matches. Now you want to iterate over all the matches in your own code.
Solution
C#
You can use the static call when you process only a small number of strings with the same regular expression:
Match matchResult = Regex.Match(subjectString, @"\d+"); while (matchResult.Success) { // Here you can process the match stored in matchResult matchResult = matchResult.NextMatch(); }
Construct a Regex
object if you want to use the same
regular expression with a large number of strings:
Regex regexObj = new Regex(@"\d+"); matchResult = regexObj.Match(subjectString); while (matchResult.Success) { // Here you can process the match stored in matchResult matchResult = matchResult.NextMatch(); }
VB.NET
You can use the static call when you process only a small number of strings with the same regular expression:
Dim MatchResult = Regex.Match(SubjectString, "\d+") While MatchResult.Success 'Here you can process the match stored in MatchResult MatchResult = MatchResult.NextMatch End While
Construct a Regex
object if you want to use the same
regular expression with a large number of strings:
Dim RegexObj As New Regex("\d+") Dim MatchResult = RegexObj.Match(SubjectString) While MatchResult.Success 'Here you can process the match stored in MatchResult MatchResult = MatchResult.NextMatch End While
Java
Pattern regex = Pattern.compile("\\d+"); Matcher regexMatcher = regex.matcher(subjectString); ...
Get Regular Expressions Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.