17.4 The Regex ClassThe .NET Framework provides an object-oriented approach to regular expression pattern matching and replacement. The Framework Class Library namespace System.Text.RegularExpressions is the home to all the .NET Framework objects associated with regular expressions. The central class for regular expression support is Regex, which provides methods and properties for working with regular expressions, the most important of which are shown in Table 17-3.
Example 17-9 rewrites Example 17-8 to use regular expressions and thus solve the problem of searching for more than one type of delimiter. Example 17-9. Regular expressionsusing System; using System.Text; using System.Text.RegularExpressions; namespace RegularExpressions { class Tester { public void Run() { string s1 = "One,Two,Three Liberty Associates, Inc."; Regex theRegex = new Regex(" |, |,"); StringBuilder sBuilder = new StringBuilder(); int id = 1; foreach (string subString in theRegex.Split(s1)) { sBuilder.AppendFormat( "{0}: {1}\n", id++, subString); } Console.WriteLine("{0}", sBuilder); } [STAThread] static void Main() { Tester t = new Tester(); t.Run(); } } } Output: 1: One 2: Two 3: Three 4: Liberty 5: Associates 6: Inc. Example 17-9 begins by creating a string, s1, identical to the string used in Example 17-8: string s1 = "One,Two,Three Liberty Associates, Inc."; and a regular expression that is used to search the string: Regex theRegex = new Regex(" |,|, "); One of the overloaded constructors for Regex takes a regular expression string as its parameter.
The rest of the program proceeds like Example 17-8, except that rather than calling the Split() method of String on string s1, the Split() method of Regex is called. TheRegex.Split() acts in much the same way as String.Split(), returning an array of strings as a result of matching the regular expression pattern within theRegex. Because it matches a regular expression, rather than using a set of delimiters, you have much greater control over how the string is split. |