regex - 替换 Notepad++ 中 CDATA 部分之间的换行符
问题描述
我有一个 csv 文件,其中一列包含 CDATA 部分。CDATA 部分内容中的换行符很少,当我尝试在 excel 中导入数据时会导致问题。我试图使用下面的正则表达式来使用 Notepad++ 删除换行符,但它似乎不起作用。
正则表达式
(<!\[CDATA\[|\G(?!\A))((?!\]\]>).)*?\K((\n))
我试图在 Notepad++ 中使用捕获组替换\2
谢谢你的帮助
解决方案
\A
Notepad++以在正确位置不匹配的错误而闻名。此外,您不需要捕获组。
为了解决\A
错误,我们将使用(?!^(?<![\s\S]))
而不是\A
.
^(?<![\s\S])
表示仅在行首没有字符时才匹配(以某种方式模拟\A
)。
正则表达式:
(?:<!\[CDATA\[|\G(?!^(?<![\s\S]))).*\K\R
在此处查看现场演示
注意:(?<![\s\S])
可以在(?<!\C)
这里替换。
推荐阅读
- spring-boot - 使用 Oracle 的 Spring Boot 可分页计数查询错误
- python - Xlwings:如何将单个单元格中的两个逗号分隔值作为列表而不是浮点数读取?
- entity-framework - 如何通知用户在他缺席期间所做的所有更改
- bash - 如何编写一个 bash 脚本来退出程序?
- python - 使用matplotlib(python)在boxplot中添加补丁
- python - 我如何遍历每一行,并为每一行将结果附加到一个列表中?
- typescript - 具有多个参数的函数接口?
- python - 如何在字典的嵌套列表中获取随机项?
- docker - worldserver Docker 容器的日志文件在哪里?
- kubernetes - gRPC 客户端负载均衡