回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个文本文件如下:</p>
<ul>
<li><p>你知道吗输入.txt你知道吗</p>
<pre><code>155 Phe 12xD,7xQ,5xE,5xG,4xA,4xS,2xF,2xH,2xI,2xK,1xM,1xN
151 Glu 11xD,6xA,5xE,3xF,3xG,3xM,2xI,2xS,1xH,1xK,1xL,1xP
159 Thr 15xF,6xL,6xM,5xG,5xI,5xT,4xA,4xV,3xR,1xD,1xN,1xP
</code></pre></li>
</ul>
<p>在这里,我的目标是:在第3列中保持大于等于6的数字:</p>
<p>所以,我所做的是:
我试图通过以下脚本将1x(Anyleter)、2x(Anyleter)、3x(Anyleter)、4x(Anyleter)、5x(Anyleter)替换为nothing:</p>
<pre><code>filepointer = open(filename,"r") # Reading file
text = filepointer.read()
merged = text.splitlines()
for i in merged:
print re.sub("[0-5]x[a-zA-Z]","", i.rstrip())#Replace 1x,2x,3x,4x,5x by nothing
</code></pre>
<p>输出:</p>
<pre><code>155 Phe 2,7xQ # 2xD belong to 12xD replaced
151 Glu 1,6xA # 1xD belong to 11xD replaced
159 Thr 5,6xL,6xM # 5xF belong to 15xF replaced
</code></pre>
<p>更换1x、2x、3x、4x、5x是完美的,但当<strong>这些1x、2x、3x、4x、5x属于11x、12x、13x、14x、15x时也会被更换。所以我想限制这一点,只替换一个数字,而不是一个以上的数字。你知道吗</p>
<ul>
<li><p><strong>预期产量</strong>:</p>
<pre><code> 155 Phe 12xD,7xQ
151 Glu 11xD,6xA
159 Thr 15xf,6xL,6xM
</code></pre></li>
</ul>
<p>我希望我的问题可以理解。你知道吗</p>
<p><strong>我只想将1替换为零</p>
<p><strong>不是属于11、21、31、41等的1</p>
<p>先谢谢你</p>