正則表達(dá)式必知必會(huì) 筆記

花了一天時(shí)間讀完正則表達(dá)式必知必會(huì),新入入門的確是個(gè)好資料。

1.轉(zhuǎn)義字符 \,表示字符有特殊含義,而不是字符本身含義。在正則表達(dá)式中,\字符永遠(yuǎn)出現(xiàn)在一個(gè)有著特殊含義的字符序列的開頭,這個(gè)序列可以由一個(gè)或者多個(gè)序列組成。

2. 定義集合:可以用[]定義一個(gè)匹配集合,[]中的所有字符都是這個(gè)集合的組成部分。[]中的字符區(qū)間可以用連字符 - 連接,如[0-9]表示[0123456789],連字符- 只在區(qū)間[]中有特殊含義,在其他字符串中表示普通字符,不用轉(zhuǎn)義。

3. 在同一個(gè)字符集合里可以給出多個(gè)字符區(qū)間。

4. 在字符集合中使用元字符^來表示取非,如[^0-9]

5. [\b] 回退并刪除一個(gè)字符(Backspace鍵)

? ? [\f] 換頁符 ? ? [\t] 制表符 ? ?[\n]換行符 ? ?[\r] 回車符 ? ?[\v]垂直制表符

6. 字符集合(匹配多個(gè)字符中的某一個(gè))是最常見的匹配形式,而一些常用的字符集合可以用特殊的元字符來代替。

7. ? \d ?--------- [0-9]

? ? ? \D --------- [^0-9]

? ? ? \w --------- [a-zA-Z0-9_]

? ? ? \W -------- [^a-zA-Z0-9_]

? ? ? \s --------- [\f\n\t\r\v]

? ? ? \S -------- [^\f\n\t\r\v]

8. +表示重復(fù)匹配一次或多次,至少一次。

9. 在字符集合中使用時(shí),特殊的元字符可以不用轉(zhuǎn)義,當(dāng)然了轉(zhuǎn)義也沒什么壞處。如[\w.]+

10. +匹配一個(gè)或多個(gè)字符或字符集合,至少匹配一個(gè);*匹配零個(gè)或任意多個(gè)字符(字符集合),可以沒有匹配;?匹配零個(gè)或一個(gè)字符(字符集合)。

11. 指定一個(gè)字符(字符集合)匹配的次數(shù),在字符(字符集合)后使用{n};或者可以設(shè)置一個(gè)區(qū)間{a,b},表示最少匹配a次,最多匹配b次;{a,}表示最少匹配a次。

12. +和*都是所謂的“貪婪型”元字符,它們匹配的原則是多多益善而不是適可而止,它們會(huì)盡可能的從一段文字的開頭一直匹配到這段文本的結(jié)尾,而不是從這段文本的開頭匹配到碰到第一個(gè)匹配時(shí)為止。解決辦法是使用“懶惰型”表達(dá),如*? ?+? ?{n,}?

13. 匹配單詞邊界:\b

14. 匹配字符串邊界:^表示開頭,$表示結(jié)尾。

15.用()括起來的是子表達(dá)式,表示一個(gè)獨(dú)立的元素。

16. 把必須匹配的情況考慮周全并寫出一個(gè)匹配結(jié)果符合預(yù)期的正則表達(dá)式很容易,但把不需要匹配的情況也考慮周全并確保他們都將被排除在匹配結(jié)果以外更加重要。

17. 子表達(dá)式常見的用途包括:對(duì)重復(fù)次數(shù)元字符的作用對(duì)象作出精確的設(shè)定和控制,對(duì)|操作符的OR條件做出準(zhǔn)確定義等。

18. 回溯引用允許正則表達(dá)式模式引用前面的匹配結(jié)果。是模式的后半部分引用在前半部分中定義的子表達(dá)式。注意:回溯引用只能用來引用模式里的子表達(dá)式?;厮菀闷ヅ渫ǔ?開始計(jì)數(shù)(\1 \2 等等)在許多實(shí)現(xiàn)里,第0個(gè)匹配可以用來代表整個(gè)正則表達(dá)式。

19. 向前查找指定了一個(gè)必須匹配但不在結(jié)果中返回的模式,任何一個(gè)子表達(dá)式都可以轉(zhuǎn)換為一個(gè)向前查找表達(dá)式,只要給它加上一個(gè)?=前綴即可。(查找出現(xiàn)在被匹配文本之后的字符,但不消費(fèi)那個(gè)字符)

20. 向后查找操作符,?<= (查找出現(xiàn)在被匹配文本之前的字符,但不消費(fèi)它)

21. 負(fù)向前和負(fù)向后查找, ?! ? ?<! ? ?負(fù)向前查找將向前查找不與給定模式相匹配的文本,負(fù)向后查找將向后查找不與給定模式相匹配的文本。

22. 并不是所有的正則表達(dá)式實(shí)現(xiàn)都支持向后查找和負(fù)向后查找。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 什么是正則表達(dá)式 正則表達(dá)式(regular expression)描述了一種字符串匹配的模式(pattern),...
    小貔閱讀 1,807評(píng)論 0 7
  • 正則表達(dá)式必知必會(huì) 匹配單個(gè)字符 匹配純文本 相當(dāng)于文本查找的功能(CMD + F)。但是一般的正則表達(dá)式引擎默認(rèn)...
    三十一_iOS閱讀 1,151評(píng)論 0 1
  • 本文譯自 制作正則引擎的作者 Jan Goyvaerts 為工具 RegexBuddy 寫的教程版權(quán)歸原作者所有注...
    極客圈閱讀 3,415評(píng)論 0 25
  • `>本文是 Jan Goyvaerts 為 RegexBuddy 寫的教程的譯文,版權(quán)歸原作者所有 在本文中講述了...
    極客圈閱讀 2,228評(píng)論 0 5
  • 和好友晴許久未通話了。 可昨天深夜,她在電話那頭卻對(duì)著我哭了,從哽咽痛哭流涕。 女人們結(jié)婚生子后,每個(gè)人好像都陷入...
    莊心愛寫作閱讀 575評(píng)論 0 0

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