替换Notepad ++中CDATA部分之间的换行符

时间:2018-10-09 15:18:50

标签: regex notepad++

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

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

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

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

Notepad ++的错误是\A在正确的位置不匹配。而且,您不需要捕获组。

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

  • ^(?<![\s\S])意味着仅当行前没有字符(以某种方式模拟\A)时才在行的开头进行匹配。

正则表达式:

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

请参见live demo here

注意:(?<![\s\S])可以在此处替换为(?<!\C)