Python 2.7中最短匹配的正则表达式

时间:2016-07-31 22:16:10

标签: python regex python-2.7

我正在使用Python 2.7。当前代码返回hello }{(2) world。如果我只想要最短的匹配,在这种情况下hello,Python 2.7中的解决方案是什么?

import re

content = '{(1) hello }{(2) world}'
reg = '{\(1\)(.*)}'
results = re.findall(reg, content)
print results[0]

2 个答案:

答案 0 :(得分:3)

制作通配符匹配non-greedy

>>> reg = r'{\(1\)(.*?)}'
# this ? is important^
>>> results = re.findall(reg, content)
>>> print results[0]
 hello 

答案 1 :(得分:0)

对于这种情况,否定的角色类也会帮助你。

reg = r'{\(1\)([^}]*)}'

results = re.findall(reg, content)

print results[0]