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

通过正则匹配含奇数个引号且不以引号结尾的字符串

正则表达式解决奇数引号且非引号结尾的字符串补全问题

原始字符串示例

Lorem Ipsum
"Lorem Ipsum
"Lorem Ipsum"
Lorem Ipsum "Lorem Ipsum
Lorem Ipsum "Lorem Ipsum"
"Lorem Ipsum" Lorem Ipsum "Lorem Ipsum
"Lorem Ipsum" Lorem Ipsum "Lorem Ipsum"

需求说明

用单个正则表达式筛选出包含奇数个双引号(")且不以双引号结尾的字符串,预期匹配结果如下:

"Lorem Ipsum
Lorem Ipsum "Lorem Ipsum
"Lorem Ipsum" Lorem Ipsum "Lorem Ipsum

并为每个匹配到的字符串末尾添加一个双引号。

问题分析

你之前尝试的正则^(([^"]*\"){2})*[^"]*$存在两个核心问题:

  1. 逻辑仅覆盖了偶数个引号或0个引号的场景,完全不符合奇数引号的筛选需求
  2. 未加入“不以双引号结尾”的判断条件

解决方案

匹配正则

^(?=(?:[^"]*")*[^"]*"(?:[^"]*")*$)(?!.*"$).+$

正则拆解

  • ^:锚定字符串开头
  • (?=(?:[^"]*")*[^"]*"(?:[^"]*")*$):正向预查,确保字符串内包含奇数个双引号。(?:[^"]*")表示一段非引号字符加一个引号,重复偶数次后再追加一组非引号字符加引号,最终总引号数为奇数
  • (?!.*"$):负向预查,排除以双引号结尾的字符串
  • .+$:匹配整个符合条件的字符串

替换方式

将匹配到的内容替换为 $0",其中$0代表整个匹配到的字符串,末尾追加一个双引号即可完成补全。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 22:32:35