搞懂正则表达式之基础篇
正則表達式是用來進行文本匹配的一種規則,在爬蟲等方面應用很廣,我之前也是一知半解,現在寫下我再次學習的一些記錄
首先推薦我學習的教程,正則練習網址: https://www.codejiaonang.com/? ? 正則在線測試網站: https://regexr-cn.com/,在嗶哩嗶哩上也有視頻教程,現在開始學習!
?
目錄
1.單一字符匹配
2.區間字符匹配
3.特殊字符匹配
4.取反
5.快捷操作?
6.重復匹配
1.單一字符匹配
字符匹配十分簡單,只要輸入你需要的字符即可匹配
有時候我們想知道的不只是單個字符有沒有出現在備選項里,而是一組字符有沒有出現出現備選項中,這時需要使用字符組([])字符組的作用是匹配[]中所有出現的字符,在下圖中Java以及java均被匹配成功。
2.區間字符匹配
有時我們要匹配的不僅僅是a,b,c這樣的單個字符,如果我們需要的是26個英文字母等ASCALL碼連續的區間字符是就需要使用區間匹配(-)常用的有以下三條:
例如[0-9a-zA-z]所表示的就是匹配所有0-9,a-z,A-Z的字符
3.特殊字符匹配
我們使用了-、[、]等來代表了一些匹配操作,如果我們需要匹配這些字符就需要進行轉義,轉義字符就是\字符,跟C語言的類似
4.取反
有時我們需要取出除了一定范圍內的字符,這時候就需要取反操作,取反操作十分簡單,在字符組中加入^即可,如[^0-9]即匹配除0-9之外的字符。
5.快捷操作?
對于一些常見的操作如匹配數字等,通常會有一些簡短的字符來表示:
| \w | 與任意單詞匹配 |
| \d | 與任意數字匹配 |
| \s | 匹配空白字符,比如空格,tab、換行等? |
| \b | 匹配單詞邊界 |
\b就是匹配處于邊界位置的字符,如下圖:
快捷取反:\d取數字\D取除數字外的字符(小寫改為大寫即可)
開始與結束:^表示以某字符串為開始,$表示以某字符串為結束
? ? ? ? ? ? ? ? ? ? ? ? ?
匹配任意字符:.字符代表匹配任何單個字符,它只能出現在方括號以外,有多少.就代表多個字符
可選字符:我們可以使用 ?符號指定一個字符、字符組或其他基本單元可選,這意味著正則表達式引擎將會期望該字符出現零次或一次
在上例中第二個o就是可選字符,所以dog與doog都可被匹配
6.重復匹配
1.準確重復次數匹配
上述的都是匹配僅出現一次的字符串匹配,如果像匹配出現N次的字符則在后面加上{N}即可
?2.可選重復次數匹配
有時我們不確定需要匹配字符的出現次數,這里重復區間就可以出場了,語法:{M,N},M是下界而N是上界,這里是貪婪模式,即盡可能多的匹配字符。在這里需要注意如果在表達式后面加上?則進入非貪婪模式。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
第一張圖出現2,3,4次均被匹配,第二張圖僅匹配了出現次數為2的數字(最后一行相當于匹配了兩次)
3.開閉區間
重復區間可以省略上界或省略下界
我們常用的就是{1,}以及{0,}兩種,可以使用+以及*分別表示
? ? ? ? ? ? ? ? ? ? ? ? ? ??
總結
以上是生活随笔為你收集整理的搞懂正则表达式之基础篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 产品经理必读书单
- 下一篇: 互联网日报 | 7月19日 星期一 |