正則

問題:你如何將元字符轉成普通字符一樣?

答:有兩種方法:

  • 用反斜槓(\)前面的元字符;
  • 將元字符括在引號表達式中\Q(在開頭)和\E(在結尾處)Pattern.quote("表達式") 將輸入序列中的元字符或轉義序列轉義成普通字符 如:
    Pattern.quote(".*+foo");  //返回   \Q.*+foo\E

貪婪

懶惰 

獨佔 

X?

X??

X?+

X*

X*?

X*+

X+

X+?

X++

X{n}

X{n}?

X{n}+

X{n,}

X{n,}?

X{n,}+

X{n,m}

X{n,m}?

X{n,m}+

?/*/+只修飾一個字符時

根據前導字符去匹配儘可能多的內容

貪婪,匹配多的,匹配不上了就回溯

(對兩個或以上的字符後添加)?

匹配最少項

記憶 :問號,對於有沒有不知道 所以是0/1

,有沒有都行不就是懶惰嗎

(對兩個或以上的字符後添加)+

與貪婪類似,區別就是不回溯,會導致“獨佔失敗”,沒有匹配上

記憶: “+ 表示必須有一 “即獨佔

                ?                             +

         0 ————> 1——————————————————>

^ 開始                               *                                                              $ 結束

          0————————————————————————>

 

匹配次數 正則表達
=n {n}
>=n {n,}
[n,m] {n,m}
括號

(pattern) 匹配並捕獲

(?:pattern) 匹配 pattern 但不捕獲該匹配的子表達式

 

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