1. 程式人生 > >爬蟲6-正則表達式基礎知識

爬蟲6-正則表達式基礎知識

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-正則表達式基礎知識