3.7. Retrieve the Matched Text
Problem
You have a regular expression that matches a part of the subject
text, and you want to extract the text that was matched. If the regular
expression can match the string more than once, you want only the first
match. For example, when applying the regex ‹\d+›
to the string Do
you like 13 or 42?, 13 should be returned.
Solution
C#
For quick one-off matches, you can use the static call:
string resultString = Regex.Match(subjectString, @"\d+").Value;
If the regex is provided by the end user, you should use the static call with full exception handling:
string resultString = null;
try {
resultString = Regex.Match(subjectString, @"\d+").Value;
} catch (ArgumentNullException ex) {
// Cannot pass null as the regular expression or subject string
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}To use the same regex repeatedly, construct a Regex object:
Regex regexObj = new Regex(@"\d+"); string resultString = regexObj.Match(subjectString).Value;
If the regex is provided by the end user, you should use the
Regex object with full
exception handling:
string resultString = null;
try {
Regex regexObj = new Regex(@"\d+");
try {
resultString = regexObj.Match(subjectString).Value;
} catch (ArgumentNullException ex) {
// Cannot pass null as the subject string
}
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}VB.NET
For quick one-off matches, you can use the static call:
Dim ResultString = Regex.Match(SubjectString, "\d+").Value ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access