3.6. Test Whether a Regex Matches the Subject String Entirely

Problem

You want to check whether a string fits a certain pattern in its entirety. That is, you want to check that the regular expression holding the pattern can match the string from start to end. For instance, if your regex is regexpattern, it will match input text consisting of regex pattern but not the longer string The regex pattern can be found.

Solution

C#

For quick one-off tests, you can use the static call:

bool foundMatch = Regex.IsMatch(subjectString, @"\Aregex pattern\Z");

To use the same regex repeatedly, construct a Regex object:

Regex regexObj = new Regex(@"\Aregex pattern\Z");
bool foundMatch = regexObj.IsMatch(subjectString);

VB.NET

For quick one-off tests, you can use the static call:

Dim FoundMatch = Regex.IsMatch(SubjectString, "\Aregex pattern\Z")

To use the same regex repeatedly, construct a Regex object:

Dim RegexObj As New Regex("\Aregex pattern\Z")
Dim FoundMatch = RegexObj.IsMatch(SubjectString)

The IsMatch() call should have SubjectString as the only parameter, and the call should be made on the RegexObj instance rather than the Regex class:

Dim FoundMatch = RegexObj.IsMatch(SubjectString)

Java

If you want to test just one string, you can use the static call:

boolean foundMatch = subjectString.matches("regex pattern");

If you want to use the same regex on multiple strings, compile your regex and create a matcher:

Pattern regex = Pattern.compile("regex pattern"); Matcher regexMatcher = regex.matcher(subjectString); ...

Get Regular Expressions Cookbook, 2nd Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.