<p>Python正则表达式使用<code>|</code>运算符进行交替。在</p>
<pre><code>def series2string(myserie) :
myserie2 = '|'.join(serie for serie in myserie)
myserie2 = '(' + myserie2 + ')'
return myserie2
</code></pre>
<p>更多信息:<a href="https://docs.python.org/3/library/re.html" rel="nofollow">https://docs.python.org/3/library/re.html</a></p>
<hr/>
<p>个别的模式看起来很混乱,所以我不知道什么是错误,什么是故意的。我猜你是在几个不同的上下文中寻找“vu”这个词。在</p>
<ol>
<li>对于正则表达式,始终使用Python原始字符串,前缀为<code>r</code>(<code>r'pattern here'</code>)。它允许您在模式中使用<code>\</code>,而无需python尝试将其解释为字符串转义。它直接传递给regex引擎。<a href="https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals" rel="nofollow">(ref)</a></li>
<li>使用<code>\s</code>匹配空白(空格和换行符)。在</li>
<li>因为您已经有了几种可选模式,所以不要将<code>(</code>和{<cd7>}设为可选。它会导致灾难性的回溯,这会使匹配大字符串的速度非常慢。<br/>
<code>\(?</code>→{<cd9>}<br/>
<code>\)?</code>→{<cd11>}</li>
<li><code>{1}</code>什么都不做。它只重复上一个子模式一次,这与不指定任何内容相同。在</li>
<li><code>\br</code>无效。它被解释为<code>\b</code>(ASCII贝尔字符)+字母<code>r</code>。在</li>
<li>文本字符串的开头有一个引号(<code>'</code>)。或者您希望<code>^</code>匹配任何行的开头,或者<code>'</code>是一个复制/粘贴错误。在</li>
<li><p>组合图案时的一些错误:</p>
<pre><code>pattern = [pattern1, pattern2, pattern3, pattern4]
pattern = series2string(pattern)
expression(re.compile(pattern), text)
</code></pre></li>
</ol>