2016-07-31 56 views
0

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

import re 

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

回答

3

充分利用通配符匹配non-greedy

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

不错,谢谢alecxe。将您的答复标记为几分钟内的答案。先投票。 :) –

+0

标记为答案。 :) –

0

对于这种情况否定字符类的也将帮助你。

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

results = re.findall(reg, content) 

print results[0]