1. 程式人生 > >爬蟲:正則表示式

爬蟲:正則表示式

正則表示式

regular expression regex RE

正則表示式是用來簡潔表達一組字串的表示式

‘PY’   ‘PYY’  'PYYY'  'PYYYY' 可表示為PY+

'PY'開頭 ,後續存在不多於10個字元

後續字元不能是‘P’或‘Y’     可用正則表示式表示:PY[^PY]{0,10}

 

正則表示式

*通用的字串表達框架

*簡潔表達一組字串的表示式

*針對字串表達“簡潔”和“特徵”思想的工具

*判斷某字串的特徵歸屬

 

正則表示式在文字處理中十分常用

*表達文字型別的特徵(病毒、入侵等)

*同時查詢或替換一組字串

*匹配字串的全部或部分

 

正則表示式的使用

*編譯:將符合正則表示式語法的字串轉換成正則表示式特徵

p=re.compile(regex)

 

正則表示式的語法

正則表示式語法由字元和操作符構成

P(Y|YT|YTH|YTHO)?N

                                                          正則表示式的常用操作符

操作符 說明 例項
. 表示任何單個字元  
[ ] 字符集,對單個字元給出取值範圍 [abc]表示a、b、c,[a-z]表示a到z單個字元
[^ ] 非字符集,對單個字元給出排除範圍 [^abc]表示非a或b或c的單個字元
* 前一個字元0次或無限次擴充套件 abc*表示ab,abc,avcc,avccc等
+ 前一個字元1次或無限次擴充套件 abc+表示abc、abcc、abccc等
前一個字元0次或1次擴充套件 abc?表示ab,abc
| 左右表示式任意一個 abc|def 表示abc或者def

PY{:3}N   表示:'PN' 、'PYN'、'PYYN'、'PYYYN' 

表示把大括號前面的字元擴充套件0到3次

                                                                 經典正則表示式例項

^[A-Za-z]+$ 由26個字母組成的字串
^[A-Za-z0-9]+$ 由26個字母和數字組成的字串
^-?\d+$ 整數形式的字串
^[0-9]*[1-9][0-9]*$ 正整數形式的字串
[1-9]\d{5} 中國境內郵政編碼,6位
[\u4e00-\u9fa5] 匹配中文字元
\d{3}-\d{8}|\d{4}-\d{7} 國內電話號碼,010-68913536