python学习笔记之正则表达式(十五)

正则表达式

使用正则表达式,需导入re模块

注意:正则表达式使用反斜杠字符 (’’) 来表示特殊形式或是允许在使用特殊字符时不引发它们的特殊含义

特殊字符说明

. (点) 在默认模式,匹配除了换行的任意字符
. (点) 在默认模式,匹配除了换行的任意字符
^ (插入符号) 匹配字符串的开头, 并且在 MULTILINE 模式也匹配换行后的首个符号
$ 匹配字符串尾或者换行符的前一个字符;foo 匹配 ‘foo’ 和 ‘foobar’ , 但正则 foo$ 只匹配 ‘foo’。
* 对它前面的正则式匹配0到任意次重复, 尽量多的匹配字符串。
+ 对它前面的正则式匹配1到任意次重复。 ab+ 会匹配 ‘a’ 后面跟随1个以上到任意个 ‘b’,它不会匹配 ‘a’。
? 对它前面的正则式匹配0到1次重复。 ab? 会匹配 ‘a’ 或者 ‘ab’
{m} 对其之前的正则式指定匹配 m 个重复;少于 m 的话就会导致匹配失败。比如, a{6} 将匹配6个 ‘a’ , 但是不能是5个
{m,n} 对正则式进行 m 到 n 次匹配,在 m 和 n 之间取尽量多。
{m,n}? 前一个修饰符的非贪婪模式,只匹配尽量少的字符次数。比如,对于 ‘aaaaaa’, a{3,5} 匹配 5个 ‘a’ ,而 a{3,5}? 只匹配3个 ‘a’。
\ 转义特殊字符
[] 用于表示一个字符集合。在一个集合中:字符可以单独列出,比如 [amk] 匹配 ‘a’, ‘m’, 或者 ‘k’;特殊字符在集合中,失去它的特殊含义。比如 [(+)] 只会匹配这几个文法字符 ‘(’, ‘+’, '’, or ‘)’;字符类如 \w 或者 \S (如下定义) 在集合内可以接受,它们可以匹配的字符由 ASCII 或者 LOCALE 模式决定
\d 匹配任何Unicode十进制数,如果设置了 ASCII 标志,就只匹配 [0-9]
\w 对于 Unicode (str) 样式:匹配Unicode词语的字符,包含了可以构成词语的绝大部分字符,也包括数字和下划线。如果设置了 ASCII 标志,就只匹配 [a-zA-Z0-9_] 。
\W 匹配非单词字符的字符。这与 \w 正相反。如果使用了 ASCII 旗标,这就等价于 [^a-zA-Z0-9_]
\Z 只匹配字符串尾

示例

演示贪婪与非贪婪匹配

>>> s = 'I love srcb'
>>> re.search(r'<.+>',s)
<re.Match object; span=(0, 39), match='I love srcb'>
>>> re.search(r'<.+?>',s)
<re.Match object; span=(0, 6), match=''>

你可能感兴趣的:(python)