3.10. Retrieve a List of All Matches
Problem
All the preceding recipes in this chapter deal only with the first match that a regular
expression can find in the subject string. But in many cases, a
regular expression that partially matches a string can find another
match in the remainder of the string. And there may be a third match
after the second, and so on. For example, the regex ‹\d+
› can find six matches in the
subject string The lucky
numbers are 7, 13, 16, 42, 65, and 99
: 7
, 13
, 16
, 42
, 65
, and 99
.
You want to retrieve the list of all substrings that the regular expression finds when it is applied repeatedly to the remainder of the string, after each match.
Solution
C#
You can use the static call when you process only a small number of strings with the same regular expression:
MatchCollection matchlist = Regex.Matches(subjectString, @"\d+");
Construct a Regex
object if you want to use the same
regular expression with a large number of strings:
Regex regexObj = new Regex(@"\d+"); MatchCollection matchlist = regexObj.Matches(subjectString);
VB.NET
You can use the static call when you process only a small number of strings with the same regular expression:
Dim matchlist = Regex.Matches(SubjectString, "\d+")
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 MatchList = RegexObj.Matches(SubjectString)
Java
List<String> resultList = new ArrayList<String>(); Pattern regex = Pattern.compile("\\d+"); Matcher ...
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.