【发布时间】:2016-05-04 15:32:19
【问题描述】:
我正在寻找一个正则表达式,它允许我在以下行不以数字开头时删除某些“\r\n”字符(或在 Python 中只是 \n)
在 Perl 中,我通过匹配 \r\n(?!\d) 并替换为 \1 来实现这一点(为了不丢失下一行中匹配的字符),但是当我在 Python (\n(?!\d)) 中尝试时,它会删除所有\n 在我的文档中。
【问题讨论】:
-
您尚未在模式中定义任何捕获组。替换为空字符串。见
\r?\n(?!\d)demo。 this demo 是否按照您的预期工作? -
我尝试用空字符串替换,但结果是几乎每个 \n 都从我的文档中删除。我试过那个演示,除非我做错了什么,不幸的是结果是一样的
-
请粘贴您测试的字符串(作为 Python 变量)和预期结果。我觉得好像你的意图不是你在问题中描述的那样。所有与换行符有关的问题几乎总是由于代码中的一些误解或拼写错误,甚至是检查是否有 CR+LF 或只是 LF 行结尾的问题。有时,编码问题。因此,一些不起作用的代码会很有帮助。
-
它是否删除了任何后跟数字的换行符?你说它删除了几乎所有的换行符,但我们没有样本数据可供查看。也许应该删除几乎所有的换行符?直到您向我们展示不应该删除的示例,我们才能知道。
-
抱歉,我正在尝试通过一些示例来复制该问题,因为我不允许粘贴我正在处理的原始数据(由于公司政策)。我已经用演示重新测试了,我得到了我的预期,所以这似乎不是正则表达式的问题,而是我如何应用它(通过文件,逐行,而不是通过字符串变量)