3.9. Retrieve Part of the Matched Text
Problem
As in Recipe 3.7, you have a regular expression that matches a substring of the subject text, but this time you want to match just one part of that substring. To isolate the part you want, you added a capturing group to your regular expression, as described in Recipe 2.9.
For example, the regular expression ‹http://([a-z0-9.-]+)
› matches http://www.regexcookbook.com
in the
string Please visit
http://www.regexcookbook.com for more information
. The
part of the regex inside the first capturing group matches www.regexcookbook.com
,
and you want to retrieve the domain name captured by the first
capturing group into a string variable.
We’re using this simple regex to illustrate the concept of capturing groups. See Chapter 7 for more accurate regular expressions for matching URLs.
Solution
C#
For quick one-off matches, you can use the static call:
string resultString = Regex.Match(subjectString, "http://([a-z0-9.-]+)").Groups[1].Value;
To use the same regex repeatedly, construct a Regex
object:
Regex regexObj = new Regex("http://([a-z0-9.-]+)"); string resultString = regexObj.Match(subjectString).Groups[1].Value;
VB.NET
For quick one-off matches, you can use the static call:
Dim ResultString = Regex.Match(SubjectString, "http://([a-z0-9.-]+)").Groups(1).Value
To use the same regex repeatedly, construct a Regex
object:
Dim RegexObj As New Regex("http://([a-z0-9.-]+)") Dim ResultString = RegexObj.Match(SubjectString).Groups(1).Value
Java
String resultString ...
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.