<p>我有一个regex函数,它从两个预定义分隔符(start&;结束):</p>
<pre><code>def Findy(start, end, anystring):
result = (anystring.split(start)[1].split(end)[0])
return result
string = "I want A and I want B and I want C and..."
Findy('want', 'and', string)
>>>'A'
</code></pre>
<p>但这只抓住了它找到的第一根火柴;我需要的是拿到所有的火柴,这样</p>
<pre><code>Findy('want', 'and', string)
>>>['A','B','C']
</code></pre>
<p>我试过合并re.findall,但是我并不总是知道在我的开始和结束分隔符之间存在什么模式,所以没有运气</p>
<p>如何重构Findy来迭代字符串并提取所有匹配项</p>
<p>不知道此代码是否满足您的要求:</p>
<pre><code>def findy(start, end, anystr):
res = []
tmp = anystr.split(start)[1:]
for e in tmp:
res.append(e.split(end)[0].strip())
return res
</code></pre>