正則表達式學習後記

正則表達式


一.基本模式匹配:模式,是正則表達式最主要的元素,它們是一組描寫敘述字符串特征的字符
    1.^符號用來匹配以給定字符串開頭的字符串;如^one,已one開頭的字符串,$符號用來匹配以給定字符串結尾的字符串;如one$,已one結尾的
    2.^和$一起使用表示精確匹配;如^one$,精確匹配到one
    3.假設一個模式不包括^和$,那麼它與不論什麼包括該模式的字符串都匹配;如some,There are some apples!


二.字符簇:用一種更自由的描寫敘述我們要的模式
   1.所有字符放在[]裡面
   2.用-表示一個字符範圍
   3.^放在[]裡面表示除開
   4..如果沒有轉義就表示除了新行以外的所有字符


三.反復出現:使用{}來確定前面的字符重複的次數
   1.一個數字,{x}表示"前面的字符或字符簇僅僅出現x次".
   2.一個數字加逗號,{x,}表示"前面的字符或字符簇至少出現x次"
   3.一個數字加逗號加數字,{x,y}表示"前面的字符或字符簇至少出現x次,但不超過y次"
   4.特殊符號"?"與{0,1}是相等的,都表示"0個或1個前面的內容"或"前面的內容是可選的";當該字元緊跟在不論什麼一個其它限制符 (*, +, ?, {n}, {n,}, {n,m}) 後面時,匹配模式是非貪婪的。非貪婪模式盡可能少的匹配所搜索的字串。而預設的貪婪模式則盡可能多的匹配所搜索的字串。比如,對於字串 "oooo",'o+?' 將匹配單個 "o",而 'o+' 將匹配全部 'o'。
   5.特殊符號"*"與{0,}是相等的,都表示"0個或多個前面的內容"
   6.特殊符號"+"與{1,}是相等的,都表示"1個或多個前面的內容"
   7.\b:匹配一個單詞邊界,也就是指單詞和空格間的位置。比如, 'er\b' 能夠匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。
   8.\B:匹配非單詞邊界'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。
   9.\cx:匹配由x指明的控制字元;比如, \cM 匹配一個 Control-M 或回車符。x 的值必須為 A-Z 或 a-z 之中的一個。否則,將 c 視為一個原義的 'c' 字元。
   10.\d :匹配一個數位字元;等價於 [0-9]。
   11.\D :匹配一個非數位字元;等價於 [^0-9]。

posted @ 2021-10-15 17:19  迷上火山baby  阅读(34)  评论(0编辑  收藏  举报