Csharp/CSharp Tutorial/Regular Expression/Regex Phone number — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
м (1 версия)
 
(нет различий)

Текущая версия на 12:17, 26 мая 2010

Match a phone number

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!" );
    }
  }

Regular Expression: phone number

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);
    }
  }
}
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