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

che*_*eng 35 python regex

试图写一个可以找到所有模式的正则表达式

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

text = "q=http://11111.doc,q=http://22222.doc"
Run Code Online (Sandbox Code Playgroud)

当我在文字上做完时,

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

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

我如何解决它?

Joe*_*oey 72

那是因为*是一个贪婪的量词,试图尽可能多地匹配.成功*?:

q=http://.*?\.doc
Run Code Online (Sandbox Code Playgroud)

更多信息可以在正则表达式HOWTO中找到: 贪婪与非贪婪