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

如何编写可忽略撇号/连字符开头单词的匹配正则表达式

正则调整方案

最终可用正则

版本1:允许单词末尾带撇号/连字符(适配你的测试用例)

(?<!['-])[a-zA-Z][a-zA-Z'-]*

版本2:要求单词首尾都为英文字母,仅中间可带撇号/连字符

\b[a-zA-Z]+(?:['-][a-zA-Z]+)*\b

匹配规则说明

  • 首字符强制限定为英文字母,天然排除了以撇号、连字符开头的单词,符合整词排除的要求
  • 中间及末尾可自由出现英文字母、撇号、连字符,适配It's、mother-in-law、parents'这类场景
  • 对测试用例中的'hellp、--Mom会直接整体忽略,不会出现仅跳过开头符号、匹配剩余内容的问题

原正则问题说明

你原先的正则存在两个核心问题:

  1. 负向先行断言(?!^['-]+\w)锚定了字符串起始位置^,只能校验整个字符串开头是否有撇号/连字符,无法校验字符串中间的单词开头是否有这两个字符
  2. 没有严格限制单词首字符必须为字母,遇到'hellp这类内容时,会跳过开头的撇号,直接匹配后面的hellp,不符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:54:05