C#Regex簡單案例解析

來源:互聯網
上載者:User

標籤:運算式   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簡單案例解析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.