擅长:python、mysql、java
<p>我可以用正则表达式</p>
<pre><code>l=["ABCD1","ADA","ALDOB","APC","ARSB"]
l='|'.join(l)
test_string='Healthy people 2000: a call to action for ADA members.'
pos=0
for i in test_string.split():
m=re.search(l,i)
if m:
gene=m.group(0)
start=test_string.find(gene)
end=start+len(gene)
print(start,end,gene,pos)
pos+=1
</code></pre>
<p>输出</p>
<pre><code>(42, 45, 'ADA', 8)
</code></pre>
<p>在字符串中没有实际位置的较短解可以是</p>
<pre><code>l=["ABCD1","ADA","ALDOB","APC","ARSB"]
l='|'.join(l)
test_string='Healthy people 2000: a call to action for ADA members.'
[(m.start(),m.group(0),m.end()) for m in re.finditer(l,test_string)]
</code></pre>