You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

需求:匹配/移除双引号间符合条件的CRLF正则表达式

移除双引号内特定CRLF的正则表达式

正则表达式

(?<="[^"]*[\w\d])\r?\n(?=[\w\d][^"]*")

规则说明

这个正则精准匹配满足所有要求的CRLF:

  • 限定在双引号内:通过反向预查(?<="...)和正向预查(?=...)锁定范围在一对双引号之间
  • 左引号与CRLF间至少含一个字母数字:[^"]*[\w\d]确保左引号到目标CRLF之间,存在至少一个字母数字字符([\w\d]),中间可包含任意非双引号内容
  • 右引号与CRLF间至少含一个字母数字:[\w\d][^"]*确保CRLF到右引号之间,存在至少一个字母数字字符,中间可包含任意非双引号内容
  • 匹配同一组双引号内的所有符合项:[^"]*仅匹配当前双引号对内部的非引号字符,不会跨双引号误匹配

示例验证

针对你提供的示例文本:

"1843","75 x 63 cm.","Bergamot","lb","Set of 6, 2022[CRLF]
On paper[CRLF]
(each)[CRLF]
Numbered","2022"[CRLF]
"20500","89 X 28 cm."
  • 引号内的3个[CRLF]会被匹配移除,处理后文本为:
    "1843","75 x 63 cm.","Bergamot","lb","Set of 6, 2022On paper(each)Numbered","2022"[CRLF]
    "20500","89 X 28 cm."
    
  • 最后一个[CRLF]因不满足「右引号与CRLF间有字母数字」的条件,不会被匹配

不同环境的使用方法

VSCode中使用

  1. 打开替换面板(快捷键Ctrl+H/Cmd+H)
  2. 勾选右上角的「正则表达式」选项(.*图标)
  3. 查找框输入上述正则,替换框留空
  4. 点击「替换全部」完成操作

Linux CLI中使用(以sed为例)

需使用支持PCRE的sed版本(带-E参数),执行命令:

sed -E 's/(?<="[^"]*[\w\d])\r?\n(?=[\w\d][^"]*")//g' 输入文件名 > 输出文件名

若处理纯Linux换行符(仅\n),可简化为:

sed -E 's/(?<="[^"]*[\w\d])\n(?=[\w\d][^"]*")//g' 输入文件名 > 输出文件名

内容的提问来源于stack exchange,提问作者Jaume Mal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 10:12:16