擅长:python、mysql、java
<p>默认情况下,Regex是贪婪的。使用<code>.*?</code></p>
<pre><code>>>> import re
>>> re.sub(r"a.*?b","ab","acbacbacb")
'ababab'
>>>
</code></pre>
<p><a href="http://docs.python.org/library/re.html" rel="nofollow">http://docs.python.org/library/re.html</a></p>
<blockquote>
<p>The <code>*</code>, <code>+</code>, and <code>?</code> qualifiers are all greedy; they match as much
text as possible. Sometimes this behaviour isn’t desired; if the RE
<code><.*></code> is matched against <code>'<H1>title</H1>'</code>, it will match the entire
string, and not just <code>'<H1>'</code>. Adding <code>?</code> after the qualifier makes it
perform the match in non-greedy or minimal fashion; as few characters
as possible will be matched. Using <code>.*?</code> in the previous expression will
match only <code>'<H1>'</code>.</p>
</blockquote>