您的位置:首页 > 编程语言 > Python开发

python 正则匹配(零宽断言)

2017-12-09 18:40 162 查看
使用小括号的时候,还有很多特定用途的语法。下面列出了最常用的一些:



1.零宽断言

有时候在使用正则表达式做匹配的时候,我们希望匹配一个字符串,这个字符串的前面或后面需要是特定的内容,但我们又不想要前面或后面的这个特定的内容,这时候就需要零宽断言的帮助了。所谓零宽断言,简单来说就是匹配一个位置,这个位置满足某个正则,但是不纳入匹配结果的,所以叫“零宽”,而且这个位置的前面或后面需要满足某种正则。

比如对于一个字符串:”finished going done doing”,我们希望匹配出其中的以ing结尾的单词,就可以使用零宽断言:

import re
s = 'finished going done doing'
p = re.compile(r'\b\w+(?=ing\b)')

print [x + 'ing' for x in re.findall(p,s)]
['going', 'doing']


这里正则中使用的
(?=ing\b)
就是一种零宽断言,它匹配这样一个位置:这个位置有一个’ing’字符串,后面跟着一个’\b’符号,并且这个位置前面的字符串满足正则:
\b\w+
,于是匹配结果就是:
['go','do']


http://blog.csdn.net/dnxbjyj/article/details/70946508

https://www.cnblogs.com/linux-wangkun/p/5978462.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: