Python正则表达式。找到最少数量的匹配字母

时间:2016-12-23 23:47:05

标签: python regex

这是我的字符串:str1 =" s s d f e w zz a r w s f zz g h"。
我正在寻找一种模式:"这里的任何东西zz"
我想找到我所有的模式,所以:" s s d e e zz"和" a w w s f zz"
我试试这个:

import re
str1 = "a s d f e w zz a r w s f zz g h"
pattern = re.compile("a.*zz")
print( pattern.findall(str1) )


我得到的是:" s s d w e w zz a r w s s zz"

2 个答案:

答案 0 :(得分:0)

您可以在?之后添加问号(.*)来使您的正则表达式变得懒惰:

import re
str1 = "a s d f e w zz a r w s f zz g h"
pattern = re.compile("a.*?zz")
print( pattern.findall(str1) )

['a s d f e w zz', 'a r w s f zz']

答案 1 :(得分:0)

您可以在通配符后添加?字符,使其不贪婪:

>>> import re
>>> str1 = "a s d f e w zz a r w s f zz g h"
>>> pattern = re.compile("a.*?zz")
>>> print( pattern.findall(str1) )
['a s d f e w zz', 'a r w s f zz']