Csharp/CSharp Tutorial/Regular Expression/Regex Phone number — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 15:17, 26 мая 2010
Match a phone number
<source lang="csharp">using System; using System.Text.RegularExpressions;
class Class1 { [STAThread] static void Main(string[] args) { Regex phoneExp = new Regex( @"^\(\d{3}\)\s\d{3}-\d{4}$" ); string input; Console.Write( "Enter a phone number: " ); input = Console.ReadLine(); while( phoneExp.Match( input ).Success == false ) { Console.WriteLine( "Invalid input. Try again." ); Console.Write( "Enter a phone number: " ); input = Console.ReadLine(); } Console.WriteLine( "Validated!" ); } }</source>
Regular Expression: phone number
<source lang="csharp">using System; using System.Text.RegularExpressions; class MainClass {
public static void Main() { string text = "(800) 888-1211\n" + "(212) 555-1212\n" + "(506) 777-1213\n" + "(650) 222-1214\n" + "(888) 111-1215\n"; string areaCodeRegExp = @"(?<areaCodeGroup>\(\d\d\d\))"; string phoneRegExp = @"(?<phoneGroup>\d\d\d\-\d\d\d\d)"; MatchCollection myMatchCollection = Regex.Matches(text, areaCodeRegExp + " " + phoneRegExp); foreach (Match myMatch in myMatchCollection) { Console.WriteLine("Area code = " + myMatch.Groups["areaCodeGroup"]); Console.WriteLine("Phone = " + myMatch.Groups["phoneGroup"]); foreach (Group myGroup in myMatch.Groups) foreach (Capture myCapture in myGroup.Captures) Console.WriteLine("myCapture.Value = " + myCapture.Value); } }
}</source>
Area code = (800) Phone = 888-1211 myCapture.Value = (800) 888-1211 myCapture.Value = (800) myCapture.Value = 888-1211 Area code = (212) Phone = 555-1212 myCapture.Value = (212) 555-1212 myCapture.Value = (212) myCapture.Value = 555-1212 Area code = (506) Phone = 777-1213 myCapture.Value = (506) 777-1213 myCapture.Value = (506) myCapture.Value = 777-1213 Area code = (650) Phone = 222-1214 myCapture.Value = (650) 222-1214 myCapture.Value = (650) myCapture.Value = 222-1214 Area code = (888) Phone = 111-1215 myCapture.Value = (888) 111-1215 myCapture.Value = (888) myCapture.Value = 111-1215