擅长:python、mysql、java
<p>当您给<code>re.findall()</code>一个包含组(圆括号表达式)的正则表达式时,它将返回匹配的<em>组</em>。在这里,你只有一个组,最后是| or]]。另一方面,在你使用的代码中芬代尔(),您没有要求任何特定的组,因此它提供了整个字符串。在</p>
<p>你可以得到关于芬德尔()来做你想做的事情,在整个正则表达式的周围加上括号,或者只在你要提取的部分的周围加上圆括号。假设您试图解析wiki链接,那么第4行就是“一堆字符”。例如</p>
<pre><code>p = re.compile(r'''
\[\[ #the first [[
[^:]*? #no :s are allowed
(.*?) #a bunch of chars
(
\| #either go until a |
|\]\] #or the last ]]
)
''', re.VERBOSE)
p.findall(' [[Imae|Lol]] [[sdfef]]')
</code></pre>
<p>退货:</p>
^{pr2}$