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

求匹配单双引号但排除缩约词与所有格标记的正则表达式

解决方案

要匹配作为引用边界的单双引号,同时排除缩约词、单词内部引号和所有格引号,可使用以下正则表达式:

/(?<!\w(?:['"]\w|s))[\"'](?!\w(?:['"]\w|s))/gm

正则说明

该正则通过负向断言精准排除不需要匹配的引号场景:

  • (?<!\w(?:['"]\w|s)) 负向后瞻:确保引号前不是以下两种情况
    • \w['"]\w:单词字符+引号+单词字符(排除单词内部引号,如O'Connell、can't里的')
    • \ws:单词字符+s(排除复数名词所有格引号,如Connells'里的')
  • [\"']:匹配目标单引号或双引号
  • (?!\w(?:['"]\w|s)) 负向前瞻:确保引号后不是以下两种情况
    • \w['"]\w:同上,排除单词内部引号
    • \ws:排除单数名词所有格引号,如O'Connell's里的'

测试验证

针对你提供的测试文本:

" I'm not going, so won't you go instead? ""Hi", 'I can't go!'
I'm not going, so won't you go 'instead'?
O'Connell's bar is "good"
O'Connells' bar is 'excellent'

匹配结果如下(仅列出需要匹配的引号):

  • 第一行开头的 "、结尾的 ",以及""Hi""中的4个 "
  • 第一行'I can't go!'开头的 '
  • 第二行'instead'中的两个 '
  • 第三行"good"中的两个 "
  • 第四行'excellent'中的两个 '

所有缩约词(I'm、won't、can't)、单词内部引号(O'Connell)、所有格引号(O'Connell's、Connells')均被正确排除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 18:51:15