首页 > 解决方案 > 替换 Notepad++ 中 CDATA 部分之间的换行符

问题描述

我有一个 csv 文件,其中一列包含 CDATA 部分。CDATA 部分内容中的换行符很少,当我尝试在 excel 中导入数据时会导致问题。我试图使用下面的正则表达式来使用 Notepad++ 删除换行符,但它似乎不起作用。

正则表达式 (<!\[CDATA\[|\G(?!\A))((?!\]\]>).)*?\K((\n))

我试图在 Notepad++ 中使用捕获组替换\2

谢谢你的帮助

标签: regexnotepad++

解决方案


\ANotepad++以在正确位置不匹配的错误而闻名。此外,您不需要捕获组。

为了解决\A错误,我们将使用(?!^(?<![\s\S]))而不是\A.

  • ^(?<![\s\S])表示仅在行首没有字符时才匹配(以某种方式模拟\A)。

正则表达式:

(?:<!\[CDATA\[|\G(?!^(?<![\s\S]))).*\K\R

在此处查看现场演示

注意:(?<![\s\S])可以在(?<!\C)这里替换。


推荐阅读