正則詳細教程系列可以看此鏈接的文章哦
https://www.cnblogs.com/poloyy/category/1796055.html
特殊單字符
元字符 | 說明 |
---|---|
\b | 匹配單詞的開始或結束 |
\B | 和 \b 相反 |
^ | 匹配字符串(行)的開始 |
$ | 匹配字符串(行)的結束 |
\b 的栗子
first
匹配文本 | poloyy |
正則表達式 | \bpoloyy\b |
匹配數量 | 1 |
匹配結果 | poloyy |
second
匹配文本 | poloyy |
正則表達式 | \bpo |
匹配數量 | 1 |
匹配結果 | po |
third
匹配文本 | poloyy1 |
正則表達式 | \bpo....\d\b |
匹配數量 | 1 |
匹配結果 | poloyy1 |
four
匹配文本 | y1菠蘿_A |
正則表達式 | \b\w. |
匹配數量 | 2 |
匹配結果 | y1、_A |
總結
- \b 其實並不匹配任何字符,它只匹配一個位置(開頭,結尾)
- 相當於單詞的開頭或結尾,有點類似 ^ 、 $
- 單詞:連起來的字母、數字、下划線,但不包括漢字(如 four 的栗子 ),一般可以用元字符 \w+ 來表示
再來看看一個拓展的栗子
重點:在精確匹配某個單詞時,我們使用 \b\w+\b 就可以實現了
行的開始或結束
和單詞的邊界類似,在正則中還有文本每行的開始和結束,如果要求匹配的內容要出現在一行文本開頭或結尾,就可以使用 ^ 和 $ 來進行位置界定
怎么才算一行?
在結尾處有換行符
要注意:在計算機中,回車 \r 和換行 \n 其實是兩個概念,並且在不同的平台系統上,換行符的表示也是不一樣的
不同系統的換行符
系統 | 換行符 |
---|---|
Windows | \r\n |
Linux | \n |
macOS | \n |
^ 的栗子
first
匹配文本 | 菠蘿_A |
正則表達式 | ^菠. |
匹配數量 | 1 |
匹配結果 | 菠蘿 |
second
匹配文本 | _123 |
正則表達式 | ^_\d |
匹配數量 | 1 |
匹配結果 | _1 |
總結
和 \b 不一樣, ^ 是匹配行開始的任意字符,可以包括漢字
$ 的栗子
first
匹配文本 | 菠2蘿_ |
正則表達式 | \d._$ |
匹配數量 | 1 |
匹配結果 | 2蘿_ |
second
匹配文本 | 123菠蘿 |
正則表達式 | \b\w\d\d菠蘿$ |
匹配數量 | 1 |
匹配結果 | 123菠蘿 |
總結
和 \b 不一樣, $ 是匹配行結尾的任意字符,可以包括漢字