標籤:運算式 tostring unicode 表達 .com 輸入 c# bcd collect
Regex主要用於字串的操作。
1.Regex.IsMatch:判斷指定的字串是否符合Regex。
2.Regex.Match:提取匹配的字串,只能提取到第一個符合的字串。這裡還可以使用組來提取。
通過括弧為Regex分組,這樣在提取時就能擷取到組的資訊。返回的類型是Match,通過Value拿到值。
組資訊是通過索引區分的,其中0表示整個匹配的字元,1表示第一個括弧內的字元。
string sss = Regex.Match("", "a(.)d").Groups[1].Value;
3.Regex.Matches,提取全部符合的字元。傳回值是MatchCollection。操作和Match一致。
4.Regex的書寫和業務的分析有關,需要具體分析規律。
5.|的優先順序很低。
"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 = "[email protected]"; //需要將.點轉義
//通過\w匹配所有的字元,接上@,接上\w,接上.,接上\w textBox1.AppendText(Regex.IsMatch(email, @"\[email protected]\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]");
C#Regex簡單案例解析