2016-07-31 52 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]