Chapter 8. Regular Expressions
Included
in the .NET Framework Class Library is the
System.Text.RegularExpressions namespace that is
devoted to creating, executing, and obtaining results from regular
expressions executed against a string.
Regular expressions take the form of a pattern that can be matched to
zero or more characters within a string. The simplest of these
patterns, such as .* (match anything and
everything) and [A-Za-z] (match any letter) are
easy to learn, but more advanced patterns can be difficult to learn
and even more difficult to implement correctly. Learning and
understanding regular expressions can take considerable time and
effort, but the work will pay off.
Regular expression patterns can take a simple form—such as a
single word or character—or a much more complex pattern. The
more complex patterns can recognize and match such things as the year
portion of a date, all of the <SCRIPT> tags
in an ASP page, or a phrase in a sentence that varies with each use.
The .NET regular expression classes provide a very flexible and
powerful way to do such things as recognize text, replace text within
a string, and split up text into individual sections based on one or
more complex delimiters.
Despite the complexity of regular expression patterns, the regular
expression classes in the FCL are easy to use in your applications.
Executing a regular expression consists of the following steps:
Create an
instance of the Regex object that contains the
regular expression pattern along with any options for executing that
pattern.
Retrieve a reference to an instance of the
Match object by calling the
Match instance method if you want only the first
match found, or to an instance of the
MatchesCollection object by calling the
Matches instance method if you want more than just
the first match found. If you've called the Matches
method to retrieve a MatchCollection object,
iterate over the MatchCollection using a
foreach loop. Each iteration will allow access to
every Match object that the regular expression
produced.
|