正則表達式主要用於字符串的操做。正則表達式
1.Regex.IsMatch:判斷指定的字符串是否符合正則表達式。編碼
2.Regex.Match:提取匹配的字符串,只能提取到第一個符合的字符串。這裏還能夠使用組來提取。code
經過括號爲正則表達式分組,這樣在提取時就能獲取到組的信息。返回的類型是Match,經過Value拿到值。blog
組信息是經過索引區分的,其中0表示整個匹配的字符,1表示第一個括號內的字符。索引
string sss = Regex.Match("", "a(.)d").Groups[1].Value;
3.Regex.Matches,提取所有符合的字符。返回值是MatchCollection。操做和Match一致。字符串
4.正則表達式的書寫和業務的分析有關,須要具體分析規律。string
5.|的優先級很低。io
"a|bcd",將匹配到a或bcd。
//.NET 默認使用的是Unicode匹配模式 ,能夠經過RegexOption枚舉加於限制 //Unicode編碼表示「全角」輸入 //去除重複的數據 這裏的\1表示自引用,表明引用(.),$1表示反引用,也是表明(.),只不過是在不一樣的地方引用須要使用不一樣的表達方式 //這裏會把所有的a替換爲單個的a,bc同理。 //(.)匹配除回車換行覺得的全部字符,\1則自引用(.),+表示出現一次或屢次,這樣無論這個字符出現屢次,都將被替換成(.),完成了業務的需求 string s = "aaaabbbbccc"; textBox1.AppendText(Regex.Replace(s, @"(.)\1+", "$1")); //郵箱的規律是包含@和. string email = "sdfsd@qq.com"; //須要將.點轉義 //經過\w匹配全部的字符,接上@,接上\w,接上.,接上\w textBox1.AppendText(Regex.IsMatch(email, @"\w+@\w+\.[a-zA-Z]+").ToString()); string msg = ""; //限定符後加?表示終止貪婪模式,儘量的少匹配 //默認狀況下是貪婪模式,儘量多的匹配 Match m1 = Regex.Match(msg, "(.)+?"); //判斷是不是合法的郵編 郵政編碼爲5位數字,這裏須要使用^$使徹底匹配 //^表示開始 $表示結尾 一塊兒用表示要徹底匹配 Regex.IsMatch("", "^[0-9]{6}$"); //判斷是否爲身份證號碼 身份證號碼能夠爲15位或者18位 Regex.IsMatch("", @"[\d]{15}|[\d]{17}[0-9xX]");