欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python学习笔记----正则表达式

程序员文章站 2022-04-20 12:45:10
python学习笔记 正则表达式 标签: python 特殊符号和字符 | 符号 | 描述 | 示例 | |: |: |: | |literral|匹配文本的字面值literal|foo| |re1\|re2|匹配正则表达式re1或re2|foo\|bar| |.|匹配任何字符(除了\\n以外)|b ......

python学习笔记-正则表达式

标签: python


特殊符号和字符

符号 描述 示例
literral 匹配文本的字面值literal foo
re1|re2 匹配正则表达式re1或re2 foo|bar
. 匹配任何字符(除了\n以外) b.b
^ 匹配字符串起始部分 ^Dear
$ 匹配字符串终止部分 /bin/*sh$
* 匹配0次或者多次前面出现的正则表达式 [A-Za-z0-9]*
+ 匹配1次或者多次前面出现的正则表达式 [a-z]+\.com
? 匹配0次或1次前面出现的正则表达式 goo?
{N} 匹配N次前面出现的正则表达式 [0-9]{3}
{M,N} 匹配M~N次前面出现的正则表达式 [0-9]{5,9}
[...] 匹配来自字符集的任意单一字符 [aeiou]
[..x-y..] 匹配x-y范围中的任意单一字符 [0-9],[A-Za-z]
[^...] 不匹配此字符集中出现的任何一个字符,包括每一范围的字符(如果则此字符集中出现) [^aeiou],[^A-Za-z0-9]
(*|+|?|{})? 用于匹配上面频繁出现、重复出现符号的非贪婪版本(*、+、?、{}) .*?[a-z]
(...) 匹配封闭的正则表达式,然后另存为子组 ([0-9]{3})?,f(oo|)bar
\d 匹配任何十进制数字,与[0-9]一致(\D与\d相反,不匹配任何非数值型的数字) data\d+.txt
\w 匹配任何字母数字字符,与[A-Za-z0-9]相同(\W与之相反) [A-Za-z]w+
\s 匹配任何空格字符,与[\n\t\r\v\f]相同(\S与之相反) of\sthe
\b 匹配任何单词边界(\B与之相反) \bThe\b
\N 匹配已保存的子组N(参见上面的(...)) price:\16
\c 逐字匹配任何特殊字符c(即,仅按照字面意义匹配,不匹配特殊含义) \.\\,\*
\A(\Z) 匹配字符串的起始(结束)(另见扇面介绍的^和$) \ADear
扩展表示法
(?iLmsux) 在正则表达式中嵌入一个或者多个特殊“标记”参数(或者通过函数/方法) (?x),(? im)
(?:...) 表示一个匹配不用保存的分组 (?:\w+\.)*
(?P<name>...) 向一个仅由name标识而不是数字ID标识的正则分组分配 (?P<data>)
()?P=name 在同一字符串中匹配由(?P=name)分组的之前文本 (?P=data)
(?#...) 表示注释,虽有内容都被忽略 (?#comment)
(?=...) 匹配条件是如果...出现在之后的位置,而不使用输入字符串;称作正向前视断言 (?=.com)
(?!...) 匹配条件是如果...不出现在之后的位置,而不使用输入字符串;称作负向前视断言
(?<=...) 匹配条件是如果...出现在之前的位置,而不使用输入字符串;称作正向后视断言
(?<!...) 匹配条件是如果...不出现在之前的位置,而不使用输入字符串;称作负向后视断言
(?(id/name)Y/N) 如果分组所提供id或者name(名称)存在就返回正则表达式的条件匹配Y,如果不存在,就返回N;|N是可选项 (?(1)y|x)