C#Regex(2):常用的特殊字元(元字元,限定字元)

來源:互聯網
上載者:User
Regex中的限定符和元字元:

 

元字元就是它是一個特殊的字元,可以代表某個字元或某一類字元.限定符就是指某個字元出現的次數

 

特殊字元 意思 例子
    \

跟字串的逸出字元一樣,它也用來轉義的.

比如$是個特殊的字元.要匹配$的話就得用\$
^ 匹配字串的開頭位置 ^a匹配arwen.但不匹配barwen.
     $ 匹配字串的末尾位置 en$匹配arwen.但不匹配arwenb.
      * 匹配前面的字元0次或多次 a*rwen,表示字母a出現0次或多次.可以匹配rwen或aaarwen.
+ 匹配前面的字元1次或多次 a+rwen表示字母a出現1次或多次.但不能是0次.可以匹配arwen或aarwen.但不能匹配rwen.
? 匹配前面的字元0次或1次 a?rwen,表示a出現0次或1次.可以匹配arwen或rwen.但不能匹配aarwen.
{n} 匹配前面的字元恰好是n次,其中n是整數 ar{2}wen可以匹配arrwen.但不能匹配arwen或arrrwen.
{n,m}

匹配前面的字元至少是n次,最多是m次.如果寫成

{n,}表示最少匹配n次.沒有上限.

ar{1,2}wen可以匹配arwen,arrwen.但不匹配awen或arrrwen.
.

點號,匹配除換行以外的任意單個字元.分行符號用\n表示

arw.n.可以匹配arwen,arwin.但不能匹配arween或arwn.
\w 匹配字元或數字,底線,漢字  
\d 匹配數字  
\s 匹配任何空白字元 貌似斷行符號符\r和分行符號\n也被算作空白字元.
\b 匹配單詞的開關或結尾 這個要和^,$匹配字元的開關和結尾區分下.我們是把空格隔開的一串字元當作一個單詞.但字串是整個的一長串字元
     
  注意:

特殊字元都區別大小寫,上面的字元全部是小寫

 

 

表示反義的字元

上面說的字元都是小寫.有些對應的大寫字元就表示相反的意思

\W匹配何意不是字母,數字,底線,漢字的字元.

\S匹配任意不是空白的字元

\D匹配任意不是數位字元

\B匹配不是單詞開始或結束的位置

 

小括弧,中括弧

中括弧:[] ,它表示裡面的字元任選一個

比如[abcd]+,就表示abcd這四個字母任意的一個出現1次或多次

 

小括弧()和|結合表示任選一個,其實和[]類似,只不過[]只能任選一個字母,()可以任選一個字串

(abc|def)+表示abc或def這兩個字串中的任一個出現一次或多次.

 

另一個是^,在上面提到它表示字串開頭,但要把它放到[]中就取反的意思了.

所以^a是匹配a在字元開頭.而[^a]匹配不是字元a的任一字元

 

還有在[]中用個串連符-表示取值範圍[0-9]表示0到9的任意一個數字[a-z]表示任意小寫字母中的一個

 

 

上面說了這麼多規則,那具體怎麼用呢,其實用起來很簡單,難的是你怎麼把上面的規則群組合起來實現你想要的條件

還用之前的例子來說,比如從字串中提取網址

string str ="ahttpp://www.baidu.com/s?tn=sitehao12";   //待提取的源字元

string pattern = @"w{3}\..*\.com";        //這裡就是用上面的規則來表達條件.w就表示字母w,如果加個\變成\w表達的意思就不一樣了,表示數字,字母,底線,漢字了

//然後w{3}表示連續出現3次w字母 \.就表示點號.注意如果前面沒有@則要表示成\\.反正最好記得每次在寡不字串前加個@就不用就考慮再給\轉義了啊.

//.*就表示除分行符號以外的任一字元出現0或多次 \.表示點號 com就表示字元com

string needStr = Regex.Match(str,pattern).Value;   //這樣就得到想要的結果了.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.