擅长:python、mysql、java
<p>使用<a href="https://docs.python.org/2/library/re.html#re.match" rel="nofollow">^{<cd1>}</a>和<a href="https://docs.python.org/2/library/re.html#re.MatchObject.group" rel="nofollow">capturing groups</a>为每个模式提取所有匹配项。然后取结果集的<a href="https://docs.python.org/2/library/sets.html#set-objects" rel="nofollow">intersection</a>:</p>
<pre><code>import re
s1, s2, s3 = (
set(m.group(1) for m in (re.match(pattern, s) for s in A) if m)
for pattern in (
r'^(.+)\.json$', # group(1) is the part within '()'
r'^(.+)\.mapping\.json$',
r'^(.+)\.analyzer\.json$'
)
)
result = list(s1 & s2 & s3) # intersection
# ['kite3.mapping', 'kite1']
</code></pre>