擅长:python、mysql、java
<p>您可能会发现使用<code>re.findall</code>这里的简单模式<code>\S+</code>更容易:</p>
<pre><code>input = "1\r\r\t\r\n2\r\r\n3\r\r\r\r\n\r\n\r4\n\r"
output = re.findall(r'\S+', input)
print(output)
['1', '2', '3', '4']
</code></pre>
<p>这种方法将隔离和匹配由一个或多个非空白字符组成的孤岛。你知道吗</p>
<p><strong>编辑:</strong></p>
<p>根据您的新输入数据,我们可以尝试匹配模式<code>[^\r\n\t]+</code>:</p>
<pre><code>input = "jkahdjkah \r\r\t\r\nA: B\r\r\nA : B\r\r\r\r\n\r\n\r4\n\r"
output = re.findall(r'[^\r\n\t]+', input)
print(output)
['jkahdjkah ', 'A: B', 'A : B', '4']
</code></pre>
<p><code>re.sub</code>并不是这里工作的合适工具。表上的内容是<code>split</code>或<code>re.findall</code>,因为您希望重复匹配/隔离文本的某个部分。<code>re.sub</code>对于获取字符串并将其转换为其他内容非常有用。它<em>可以</em>用于提取文本,但对于多个匹配项来说效果不太好。你知道吗</p>