擅长:python、mysql、java
<p>我会完全避免使用正则表达式。您可以使用<code>str.translate</code>删除不需要的字符。</p>
<pre><code>from string import ascii_letters
removechars = ''.join(set(ascii_letters) - set('ACTGNU'))
newFastA = self.fastAsequence.translate(None, removechars)
</code></pre>
<p>演示:</p>
^{pr2}$
<p>如果还想删除空白,可以将<code>string.whitespace</code>放入<code>removechars</code>。</p>
<p>旁注,以上仅适用于Python2,在Python3中还有一个附加步骤:</p>
<pre><code>from string import ascii_letters, punctuation, whitespace
#showing how to remove whitespace and punctuation too in this example
removechars = ''.join(set(ascii_letters + punctuation + whitespace) - set('ACTGNU'))
trans = str.maketrans('', '', removechars)
dna.translate(trans)
Out[11]: 'ACTAGAGAUACCACGGNUGNUGNU'
</code></pre>