python中的正則表達式符號



正則表達式的符號
標記法 描述 正則表達式例子 匹配的字符串
文字 匹配文字字符串值 foo foo
表達式1 | 表達式2 匹配期中任何的一個表達式 foo | bar | bet foo, bar, bet
. 匹配任何字符,除了\n b.c b和c之間任何字符,如:bac, b9c, b#c等
^ 匹配字符串的開始 ^student student開頭的任何字符串,如student data
$ 匹配字符串的結尾 /sh$ 任何/sh結尾的字符串
* 匹配0或多個前置表達式 [A-Za-z0-9]* z[0-9],匹配z0, z1, ..., z9
+ 匹配1或多個前置表達式 [a-z]+\.com 匹配.com前面至少一個字符
? 匹配0或1個前置表達式 goo? [dn]ot?,d或n後一個o,後面最多一個t,如do, dot, no, not
{N} 匹配N個前置表達式 [0-9]{3} 匹配三個數字。
{M, N} 匹配M到N個前置表達式 [0-9]{5, 9} 匹配5到9位的數字
[...] 匹配任意單個的字符 [aeiou] b[aeiou]匹配bat, bet, bit, bot, but
[cr][23][dp][o2],匹配長度爲4的字符串,如c2dp, r3p2等
[..x-y..] 匹配x到y的任意單個字符 [0-9],[A-Za-z] [0-9],匹配0到9的任意數字
[^...] 不匹配任何任何字符或任意範圍內的字符 [^aeiou], [^A-Za-z0-9] [^aeiou]匹配非元音字母
(*|+|?|{})? 以上符號組合 .*?[a-z]  
(...) 分組表達式
匹配子組
([0-9]{3})?,
f(oo|u)bar
 \d+(\.\d*)?,匹配浮點數,如0.33, 72, 72.5, 75.
f(oo|u)bar,匹配foobar, fubar
正則表達式的特殊字符
\d 匹配任何數字,同[0-9]
\D表示不匹配
data\d+.txt 匹配data0.txt,data1.txt等
\w 匹配任何數字、字母 [A-Za-z_]\w+ 匹配第一個字符爲字母,後面更字母或數字的字符串
\s 匹配任何空字符
同\n\t\r\v\f,\S爲不匹配
of\sthe  
\b 匹配任何單詞邊界 \bThe\b
\Bthe
匹配單詞The
包含字符串the,但不是以the開頭
\N 匹配保存的子組N price: \16  
\c 匹配特殊字符 \., \\, \*  
\A(\D) 匹配字符串的開始或結尾 \ADear \ADear

正則表達式的擴展字符
(?iLmsux) 在正則表達式本身的參數裏面嵌入一個或多個特殊標誌 (?x), (?im)  
(?:...) 未保存匹配項的組 (?:\w+\.)* 匹配字符串後面加一個.號,如google.,twitter.
但是不保存爲子串
(?P<name>...) 像普通的匹配組,只表示名稱,而不標識數字ID (?P<data>)  
(?P=name) 在同一字符串中,匹配由(?P<name>)分組的文字 (?P=data)  
(?#...) 指定註釋,忽略所有的內容 (?#comment) 不匹配,只是註釋
(?=...) 如果...緊隨出現則匹配,稱爲正向前瞻斷言 (?=.com)  
(?!...) 如果...沒有緊隨出現則匹配,稱爲反正向前瞻斷言 (?!.com)  
(?<=...) 如果...在前面出現則匹配,稱爲反向後瞻斷言 (?<=800-)  
(?<!...) 如果...在前面沒有出現則匹配,稱爲反反向後瞻斷言 (?<!192\.168\.)  
(?(id/name)Y|N) 條件匹配,如果給定ID或名字的組存在則返回爲Y
否則返回N
(?(1)y|1)  

發佈了37 篇原創文章 · 獲贊 7 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章