爬蟲:正則表示式
阿新 • • 發佈:2018-11-25
正則表示式
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 |