正規表示式
regular expression re regex
一 定位
簡潔的一組的字串表示式
通用字串表達框架
判斷字串特徵歸屬
二 正規表示式常用操作符
三 語法例項
p(y|yt|yth|ytho)?n 『pn』,』pyn』,pytn』,pythn』,python』
python+ 『python』,pythonn』pythonnn』…………………
py[th]on 『pyton』,』pyhon』
py[^th]on 『pyaon』,』py&on』,』py_on』………………………
pyn 『pn』,』pyn』,』pyyn』,』pyyyn』
注:表示拓展前乙個字元0~3次
四 經典例項
name
academy
^[a-za-z]+$
26個字母組成的字串
^[a-za-z0-9]+$
26個字母和數字組成的字串
^-?\d+$
任意整數型字串
^[0-9][1-9][0-9]$
正整數型字串
[1-9]\d
[\u4e00-\u9fa5]
中文字元
re庫使用
import re
一 正規表示式表示型別
raw string
表示為: r』text』
eg: r』[1-9]\d』
r』\d-\d|\d-\d』
raw string是不包含對轉移符再次轉義的字串
可以避免使用如』\』表示』\』
二 re庫主要功能函式
1. re.search(pattern,string,flags=0)
flages控制標記
eg
import rematch=re.search( r』[1-9]\d』 , 『bit 10093』)
if match:
print ( match.group(0) )
2. re.match( pattern,string,flags,flags=0 )
不同於re.search( ) ,re.match( )是從開始位置匹配
re.match( r』[1-9]\d』 , 『bit 10093』 )不會匹配出結果
3. re.findall( pattern,string,flags=0 )
eg
ls = re.findall( r』[1-9]\d』, 『bit 10081 tsu 10093』)print ( ls )
[『10081』, 『10093』]
4. re.split ( pattern,string,maxsplit=0,flags=0 )
maxsplit: 最大分割數,剩餘部分作為後乙個元素輸出
eg
re.split( r』[1-9]\d』, 『bit 10081 tsu 10083』 )[ 『bit』, 『tsu』, 」]
re.split( r』[1-9]\d』, 『bit 10081 tsu 10083』, maxsplit=1 )
[『bit』 , 『tsu 10083』]
注意:maxsplit的數值決定了其割掉的段的數量
5. finditer( pattern, string, flags=0 )
eg
for m in re.finditer( r』[1-9]\d』, 『bit 10081 tsu 10083』 ):if m:
print( m.group (0) )
10081
10083
6. re.sub(pattern, repl, string, count=0, flags=0 )
repl: 替換匹配字串的字串
eg
re.sub( r』[1-9]\d』, 『:zipcode』 , 『bit 10081 tsu10083』 )『bit :zipcode tsu :zipcode』
三 re庫的等價用法
regex = re.complie( pattern, flags=0 )
eg
regex = re.complie( r』[1-9]\d』 )
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...