擅长:python、mysql、java
<p>如果实际上不是要删除所有的控制序列,只删除特定输入中的<code>^M</code>和{<cd2>}序列,可以用两种更简单的方法来完成。在</p>
<p>首先,只需替换这些序列:</p>
<pre><code>text = text.replace('\r', '').replace('\x1b[A', '')
</code></pre>
<p>或者,第二个看起来更复杂,但它可以让你处理你还没有得到的另一部分(删除前两个<code>^M</code>之间的所有可打印的内容)-你可以只删除“解救”之前的所有内容,然后在“完成”之前删除字符:</p>
^{pr2}$
<p>或者,使用正则表达式:</p>
<pre><code>text = ''.join(re.search(r'(rescued.*?)\r(Finished.*)', text, re.DOTALL).groups())
</code></pre>
<p><code>(rescued.*?)</code>匹配从<code>rescued</code>到下一个<code>\r</code>的所有内容,然后<code>(Finished.*)</code>匹配从<code>Finished</code>到最后的所有内容(我不确定这是什么,还是一个新行);将这两个捕获组连接在一起,您就得到了想要的结果。在</p>