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...) 像普通的匹配组,只表示名称,而不标识数字ID (?P)  
(?P=name) 在同一字符串中,匹配由(?P)分组的文字 (?P=data)  
(?#...) 指定注释,忽略所有的内容 (?#comment) 不匹配,只是注释
(?=...) 如果...紧随出现则匹配,称为正向前瞻断言 (?=.com)  
(?!...) 如果...没有紧随出现则匹配,称为反正向前瞻断言 (?!.com)  
(?<=...) 如果...在前面出现则匹配,称为反向后瞻断言 (?<=800-)  
(? 如果...在前面没有出现则匹配,称为反反向后瞻断言 (?  
(?(id/name)Y|N) 条件匹配,如果给定ID或名字的组存在则返回为Y
否则返回N
(?(1)y|1)  

你可能感兴趣的:(Python)