擅长:python、mysql、java
<p>您可以定义一个模式列表并找到第一个与<a href="https://docs.python.org/3/library/functions.html#next" rel="nofollow noreferrer">^{<cd1>}</a>匹配的模式</p>
<pre><code>>>> import re
>>> patterns = [re.compile('a.c'), re.compile('1.3'), re.compile('4.6')]
>>> next((p for p in patterns if p.match('abc')), None)
re.compile('a.c')
>>> next((p for p in patterns if p.match('436')), None)
re.compile('4.6')
>>> next((p for p in patterns if p.match('XYZ')), None)
</code></pre>
<p><code>None</code>作为<code>next</code>的第二个参数用于避免StopIteration:</p>
<pre><code>>>> next(p for p in patterns if p.match('XYZ'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
</code></pre>