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 = '<html><title>I love srcb</title></html>'
>>> re.search(r'<.+>',s)
<re.Match object; span=(0, 39), match='<html><title>I love srcb</title></html>'>
>>> re.search(r'<.+?>',s)
<re.Match object; span=(0, 6), match='<html>'>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值