正則表達(dá)式入門速記

最簡單的單獨(dú)匹配一個(gè)單詞,如匹配blue.需要使用\b.它是元字符,代表著單詞的開頭或者結(jié)尾.只匹配一個(gè)位置.如匹配單詞blue的方法是\bblue\b.
一些元字符
  • \b匹配一個(gè)位置
  • .(這里是個(gè)點(diǎn),可能看不清)匹配除換行以外任意字符
  • *表示重復(fù)零次或更多次
  • \d匹配一個(gè)數(shù)字
  • \s匹配任意的空白符,如空格,制表符,換行符
  • \w匹配數(shù)字,字母,漢字,還有下劃線
  • ^匹配字符串的開始,$匹配字符串的結(jié)尾

舉例
  • \ba\w*\b匹配以a開頭的單詞(有可能是abc,a正則,a_g_)
  • \d+匹配一個(gè)或者更多連續(xù)的數(shù)字
  • \b\w{6}\b匹配剛好6個(gè)單詞的單詞
  • ^\d{5,12}$匹配5到12位數(shù)字

重復(fù)的幾種表示方法
  • *重復(fù)零或者任意更多次
  • +重復(fù)一次或更多次
  • ?零或者一次
  • {n}重復(fù)n次
  • {n,}n或者更多次
  • {n,m}n到m次

方括號的使用[ ]
  • [aeiou]匹配任何一個(gè)元音字母
  • [.?!]匹配其中一個(gè)標(biāo)點(diǎn)符號
  • [0-9]匹配一個(gè)數(shù)字
  • [a-z 0-9 A-Z]

反義
  • \W匹配任意非字母,非數(shù)字,非漢子,非下劃線的字符
  • \S匹配除了空白符的字符
  • \D匹配任意非數(shù)字的字符
  • \B匹配不是單詞開頭或結(jié)尾的位置
  • 在方括號里面使用^實(shí)現(xiàn)反義,[^a]匹配除了a以外的任意字符

分枝條件| 正則表達(dá)式里的替換指的是有幾種規(guī)則,如果滿足了其中一種規(guī)則都應(yīng)該當(dāng)成匹配
  • 0\d{2}-\d{8}|0\d{3}-\d{7}匹配兩種以連字符分割的電話號碼
  • \d{5}-\d{4}|\d{5}匹配美國的郵編,5位數(shù)字或者用連字號間隔的9位數(shù)字。
之所以給出這個(gè)例子,是要注意,使用分枝條件時(shí),順序很重要。從左到右測試條件,一旦滿足了某個(gè)條件,就不會去管后面的正則了。如果換成\d{5}|\d{5}-\d{4},用這個(gè)去匹配時(shí),只能匹配到5位數(shù)字,或者9位數(shù)字的前五位
后向引用

還記得前面分組用的小括號嗎?后向引用就是給小括號編上號,從左到右依次為1,2...

  • \b(\w+)\b\s+\1\b這里的\1匹配前面的單詞
  • 可以給子表達(dá)式自定義名字,使用?<name>例如?<word>\w+調(diào)用的時(shí)候使用\k<word>
零寬斷言
  • (?=exp) //匹配exp前面的位置
    • \b\w+(?=ing\b)匹配以ing結(jié)尾的單詞前面的部分
  • (?<=exp) //匹配exp后面的位置
    • (?<=\bre)\w+\b //匹配以re開頭的單詞后面的部分
  • (?!exp) //匹配后面跟的不是exp的位置
    • \d{3}(?!\d) //匹配三位數(shù)字,而且三位數(shù)字后面不能是數(shù)字
  • (?<!exp) //匹配前面跟的不是exp的位置
    • (?<![a-z])\d{7}匹配前面不是小寫字母的七位數(shù)字
  • 假如想要在一串很長的數(shù)字中每三位數(shù)字間加一個(gè)逗號,可以這樣來匹配位置((?=\d)\d{3})*\b
  • 匹配以空白符間隔的數(shù)字(?<=\s)\d(?=\s)
貪婪與懶惰
  • 默認(rèn)貪婪匹配,如a.*b用在aababb上的話,會匹配整個(gè)字符串
  • 想要實(shí)現(xiàn)懶惰匹配,需要加上問號a.*?b這樣只會匹配aab
  • *? 重復(fù)任意次,但盡可能少重復(fù)
  • +? 重復(fù)1次或更多次,但盡可能少重復(fù)
  • ?? 重復(fù)0次或1次,但盡可能少重復(fù)
  • {n,m}? 重復(fù)n到m次,但盡可能少重復(fù)
  • {n,}? 重復(fù)n次以上,但盡可能少重復(fù)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 正則表達(dá)式到底是什么東西?字符是計(jì)算機(jī)軟件處理文字時(shí)最基本的單位,可能是字母,數(shù)字,標(biāo)點(diǎn)符號,空格,換行符,漢字等...
    獅子挽歌閱讀 2,272評論 0 9
  • 注:本篇文章只為方便查看,特此保留,如有冒犯,敬請諒解!??! 本文目標(biāo) 30分鐘內(nèi)讓你明白正則表達(dá)式是什么,并對它...
    阿杰Alex閱讀 1,557評論 0 10
  • 轉(zhuǎn)載自正則表達(dá)式30分鐘入門教程 入門 學(xué)習(xí)正則表達(dá)式的最好方法是從例子開始,理解例子之后再自己對例子進(jìn)行修改,實(shí)...
    夏天的風(fēng)_song閱讀 1,956評論 0 0
  • 歡迎關(guān)注微信公眾號:全棧工廠 一 正則字符簡單介紹1.1 元字符介紹"^" :^會匹配行或者字符串的起始位置,有時(shí)...
    liqingbiubiu閱讀 2,173評論 0 0
  • 本文目標(biāo) 30分鐘內(nèi)讓你明白正則表達(dá)式是什么,并對它有一些基本的了解,讓你可以在自己的程序或網(wǎng)頁里使用它。一旦入門...
    不吃飯會餓閱讀 3,892評論 0 8

友情鏈接更多精彩內(nèi)容