用正則表達式進行匹配



用m//進行匹配:

   m//與//相同,/爲匹配的邊界符,但是m//的邊界符可以用別的符號代替。

模式匹配修飾符:

   在邊界符後面加特定字母,表示某種規則,可以組合使用,沒有順序。
 /i  與大小寫無關
 /s  符號“.”能匹配任何字符(包括換行符)
 /x  在匹配中允許加入空白符(方便看)
/a 字符解釋:採取ASCII方式
/u 字符解釋:採取Unicode方式
/l 字符解釋:本地化語言

錨位:

   定義開頭或結尾固定字符或單詞。
 \A 匹配開頭字符
 \z  匹配末尾字符,大寫Z表示後面允許有換行符
 \b  匹配任何單詞的首位,一組連續的\w字符開頭或結尾
   例:/\A\s*\Z/ —— 匹配一個空行
   另一種方式:^行首,$行末

綁定操作符:

    =~ ——用右邊的模式匹配左邊的字符串

模式中的內插:

   例:my $what = "larry"; if(/\A($what)/) { ... }

捕獲變量:$數字

   捕獲變量形如:$1、$4,它和反向索引\1、\4差不多,不同的是反向索引是模式匹配期間得到的結果,捕獲變量則是模式匹配後對得到的補貨內容的索引
   捕獲變量只應該在捕獲成功時使用,否則會得到上一次模式匹配的捕獲內容。

不捕獲圓括號:

   (?:  ) —— 表示括號內容不被捕獲,不佔用位置。

捕獲標籤:

   形式:(?<標籤名>內容)
   捕獲:$+{標籤名}
   反向引用:\g{標籤名}

通用量詞:

   除了+、*、?以外,還可以規定出現次數。
    {n} ——出現n次
    {n,m}——出現n到m次
    {n,} ——出現n次以上

正則表達式優先級(由高到低):


 圓括號(分組或捕獲)  (...)、(?:...)、(?
 量詞  a*、a+、a?、a{n,m}
 錨位和序列  abc、^、$、\A、\b、\z、\Z
 擇一豎線  a|b|c
 原子  a、[abc]、\d、\1、\g{z}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章