python正则表达式第一/最短匹配

时间:2012-07-02 21:23:37

标签: python regex

尝试编写可以找到所有模式的正则表达式

p = "q=http://.*\.doc" in 

text = "q=http://11111.doc,q=http://22222.doc"

当我对文字做了决定时,

我得到了整件事,即q=http://11111.doc,q=http://22222.doc

但不是q=http://11111.docq=http://22222.doc

我该如何解决?

1 个答案:

答案 0 :(得分:66)

那是因为*是一个贪婪的量词,试图尽可能多地匹配。设为*?

q=http://.*?\.doc

可以在 Regular Expression HOWTO 中找到更多信息:  Greedy versus Non-greedy