Python re正则表达式速查

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python re正则表达式速查相关的知识,希望对你有一定的参考价值。

技术分享

常见正则表达式符号和特殊字符

表示法

描述

正则表达式示例

符号

re1|re2

匹配正则表达式re1re2

foo|bar

.

匹配任意除换行符"\\n"外的字符

a.c

^

匹配字符串开头,在多行模式中匹配每一行的开头

^Dear

$

匹配字符串末尾,在多行模式中匹配每一行的末尾

/bin/*sh$

*

匹配前一个字符0或多次

[A-Za-z0-9]*

+

匹配前一个字符1次或多次

[a-z]+\\.com

?

匹配一个字符0次或1

goo?

{}

{m}匹配前一个字符m次,{m,n}匹配前一个字符mn

[0-9]{3} ,[0-9]{5,9}

[...]

匹配字符集中的任意单个字符

[aeiou]

[^...]

不匹配字符集中的任意一个字符

[^aeiou],[^A-Za-z0-9]

[x-y]

X~y范围中的任何一个字符

[b-x]

()

匹配封闭的正则,存为子组,从表达式左边开始每遇到一个分组的左括号“(”,编号+1

([0-9]{3})?,f(oo|u)bar

特殊字符

\\d

匹配任何十进制数(\\D 相反)<=> [0-9]

data\\d+.txt

\\w

任何字母数字(\\W 相反)  <=>  [A-Za-z0-9]

[A-Za-z]\\w+

\\s

任何空格字符(\\S 相反) <=> [\\n\\t\\r\\v\\f]

of\\sthe

\\b

匹配任何单词边界(\\B相反

\\bThe\\b

\\A(\\Z)

匹配字符串起始(结束) <=> ^($)

\\ADear

扩展表示法

(?iLmsux)

编译选项指定,可以写在findallcompile的参数中,也可以写在正则式里

(?x), (?im)

(?#...)

表示注释,所有内容被忽略

(?#comment)

(?:...)

表示一个匹配不用保存的分组

(?:\\w+\\.)

(?=...)

如果 ... 出现在要匹配字符串的后面

例如:Isaac (?=Asimov) 只匹配 ‘Isaac ‘ 后面跟 ‘Asimov‘的字符串

 (?=.com)

(?!...)

 如果 ... 不出现在要匹配字符串后面

 (?!.net)

(?<=...)

 如果 ... 出现在之前的位置,则匹配

 (?<=800-)

(?<!...)

 如果 ... 不出现在之前的位置,则匹配

 (?<!192\\.168\\.)

(?(id/name)yes-pattern|no-pattern)

 如果 group 中的 id/name 存在匹配 yes-pattern,否则 no-pattern  例如:(<)?(\\[email protected]\\w+(?:\\.\\w+)+)(?(1)>)只会匹配 <[email protected]> 或者 [email protected] 不会匹配 <[email protected]

 (?(1)y|x)

(?P<name>...)

 分组,除了原有的编号外再指定一个额外的别名

 (?P<id>abc){2}

(?P=name)

 引用别名为<name>的分组匹配到字符串

 (?P<id>\\d)abc(?P=id)

以上是关于Python re正则表达式速查的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式

Python 中正则表达式全部语法速查

Python正则表达式最强整理(速查手册,记得收藏)

Python正则表达式最强整理(速查手册,记得收藏)

python正则表达式与re模块

Python技能树共建正则表达式