源代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace chapter19學習小括號運算符
{
class Program
{
/// <summary>
/// 學習小括號運算符
/// </summary>
public void Test1()
{
string str = "213ab11ab22kjhghj";
//模式定義
string strPattern = @"(ab\w{2}){2}";
//輸出結果
Console.WriteLine(Regex.Replace(str, strPattern, "*"));
}
/// <summary>
/// 檢索
/// </summary>
public void Test2()
{
string str = "213aob11ab22kjhghj";
if(IsOK(str))
{
Console.WriteLine("檢索成功");
}
else
{
Console.WriteLine("檢測失敗");
}
}
public bool IsOK(string str)
{
//模式定義,{2}表示重複兩次
string strPattern = @"(ab\w{2}){2}";
return Regex.IsMatch(str, strPattern);
}
/// <summary>
/// 驗證座機電話號碼是否爲合法
/// (010)-12345678
/// 010-12345678
/// 01012345678
/// </summary>
public void Test3()
{
string strTest1 = "(010)-12345678";//true
string strTest2 = "010-12345678";//true
string strTest3 = "01012345678";//true
string strTest4 = "010)-12345678";//false
string strTest5 = "(010)12345678";//true
string strTest6 = "(010)-12hj5679";//false
//定義模式,?表示重複一到兩次,(表示一個元字符, \( 表示小括號字符(轉義)
string strPattern = @"\(0\d{2,3}\)[-]?\d{7,8}|^0\d{2,3}[-]?\d{7,8}$";
Console.WriteLine(Regex.IsMatch(strTest1, strPattern));
Console.WriteLine(Regex.IsMatch(strTest2, strPattern));
Console.WriteLine(Regex.IsMatch(strTest3, strPattern));
Console.WriteLine(Regex.IsMatch(strTest4, strPattern));
Console.WriteLine(Regex.IsMatch(strTest5, strPattern));
Console.WriteLine(Regex.IsMatch(strTest6, strPattern));
}
static void Main(string[] args)
{
Program obj = new Program();
//obj.Test1();
//obj.Test2();
obj.Test3();
Console.ReadKey();
}
}
}