[学习笔记]正则表达式语法与使用速查

常用正则表达式

元字符 使用描述与例子
\ 转义字符,换行: \n 回车: \r 换页: \f 反斜杠: \\ 左括号 \(
() 标记子表达式的开始和结束位置, (ab)(a)(b) 等价
^ 匹配行首, ^ab 匹配 abcde 中的ab
$ 匹配行尾, de$ 匹配 abcde 中的de
* 匹配前面子表达式零次或多次, a(bb)* 匹配 abbba 中的a,abb ,不匹配abbb
+ 匹配前面子表达式一次或多次,a(bb)+ 匹配 abbba 中的abb ,不匹配 a,abbb
? 匹配前面的子表达式零次或一次,(fe)?male 匹配 female 中的female,male
{n} 精准匹配n次, mo{2} 匹配 moon中的o ,不匹配 mon中的 o
{n,} 匹配确定>n次, o{3,} 匹配zooooooo ,不匹配 zoo中的o
{n,m} 匹配确定次数∈[n,m], zo{1,3} 匹配zo , zoo , zooo ,对于zoooooo只匹配前3个o
? 非贪婪匹配. a+ 贪婪匹配字符串 “aaaaa”,得到 [aaaaa] , 而 a+? 非贪婪匹配得到 [a,a,a,a,a]
. 匹配除“\n”和"\r"之外的任何单个字符,用作任意字符
| 两个匹配条件执行"or"运算, (cat|dog)food 匹配 catfooddogfood
(pat) 匹配pat并获取匹配,模式 (a{2})|(b{2}) ,匹配aaabbb中的 aabb
(?<=pat) 向前匹配pat但不获取, (?<=cat)food 匹配catfood 中的 food
(?=pat) 向后匹配pat但不获取, cat(?=food) 匹配 catfood 中的 cat
(?<!pat) 向前否定匹配pat但不获取, (?<!cat)food 匹配dogfood 中的 food ,不匹配catfood中的 food
(?!pat) 向后否定匹配pat但不获取, cat(?!food) 匹配 catdrink 中的 cat,不匹配 catfood 中的 cat
[xyz] 匹配包含的任意一个字符, [abc] 匹配 man 中的 a , bad 中的 a,b
[^xyz] 匹配未包含的任意字符, [^abc] 匹配 a1b2c3 中的 [1,2,3]
[a-z] [^a-z] [a-z] 匹配字符a-z范围内任意小写字母, [^a-z] 匹配非小写字母的任意一个字符
\d \D \d匹配0-9中的一个数字 ,\D匹配非0-9的任意一个字符
\s \S \s匹配任何一个不可见的字符,包括空格、制表符、换页符等 , \S 匹配任何一个可见字符
\w \W \w匹配含下划线的任何单词字符,\W匹配任何非单词字符
\num 匹配num,num为正整数,对所获取的匹配引用num次, (.)\1 匹配两个连续的相同字符, (a)\1匹配baaaa 中的 aa

其他

1.关于正则表达式在Python re模块中的使用例子,请参阅我的文章:
等我写完
2.关于正则表达式的更多使用例子,参阅我的另外一篇文章:
等我写完

猜你喜欢

转载自blog.csdn.net/xHibiki/article/details/83862313