爬蟲6-正則表達式基礎知識
阿新 • • 發佈:2018-04-07
alt 圖片 正則表達式基礎 ali 存在 基礎 字符串轉換 不能 查找
正則表達式用來簡潔表達一組字符串。
一行勝千言
如用‘PY+‘表示‘PY‘ ‘PYY‘ ‘PYYY‘ ‘PYYYY....‘等字符串
如果,以‘PY’開頭,後續存在不多於10個字符,後續字符不能是‘P’或‘Y’,可以用‘PY[^PY]{0,10}’表示
正則表達式在文本處理中十分常用:
1、表達文本類型的特征(病毒,入侵等)
2、同時查找或替換一組字符串
3、匹配字符串的全部或部分(最常用)
正則表達式的使用:
編譯:將符合正則表達式語法的字符串轉換成正則表達式特征
語法:由字符和操作符構成
操作符 | 說明 | 實例 |
. | 表示單個字符 | |
[ ] | 字符集,對單個字符給出取值範圍 | [abc]表示a,b,c,[a-z]表示a到z單個字符 |
[^ ] | 非字符集,對單個字符給出排除範圍 | [^abc]表示非a 非b 非c的單個字符 |
* | 前一個字符0次或無限次擴展 | abc*表示ab\abc\abcc\abccc等 |
+ | 前一個字符1次或無限次擴展 | abc+表示abc\abcc\abccc等 |
? | 前一個字符0次或1次擴展 | abc?表示ab\abc |
| | 左右表達式任意一個 | abc|def表示abc\def |
{m} | 擴展前一個字符m次 | ab{2}表示abbc |
{m,n} | 擴展前一個字符m至n次 | ab{1,2}c表示abc\abbc |
^ | 匹配字符串開頭 | ^abc表示abc且在一個字符串的開頭 |
$ | 匹配字符串結尾 | $abc表示abc且在一個字符串的結尾 |
() | 分組標記,內部只能使用|操作符 | (abc)表示abc,(abc|def)表示abc\def |
\d | 數字,等價於[0-9] | |
\w | 單詞字符,等價於[A-Za-z0-9] |
例子:
匹配IP地址的正則表達式
IP地址分4段,每段0-255:
\d+.\d+.\d+.\d+ 或者 \d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}
精確的IP地址表達式:
爬蟲6-正則表達式基礎知識