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

正则表达式需求:匹配合法单引号包裹字符串,排除奇数单引号

正则表达式优化方案

最终正则表达式

^'(?:[^'\n ])*'$

规则说明

  • ^:匹配字符串开头,确保从第一个字符开始匹配
  • ':匹配开头的单引号
  • (?:[^'\n ])*:非捕获分组,匹配0个或多个以下字符:
    • 不是单引号(')
    • 不是换行符(\n)
    • 不是空格
  • ':匹配结尾的单引号
  • $:匹配字符串结尾,确保到最后一个字符结束

匹配验证

符合匹配规则的场景

  • 'abc':成对单引号包裹纯文本,无禁止字符
  • 'abc#@$%^xyz':成对单引号包裹含特殊符号的文本,无禁止字符

不符合匹配规则的场景

  • '\n':包含换行符,被[^'\n ]排除
  • 'abc#'@$%^xyz':字符串中间存在未成对的单引号,整体单引号数量为奇数,无法满足开头+结尾的成对要求
  • ''':单引号数量为3(奇数),无法匹配^'...'$的成对结构
  • ':单引号数量为1(奇数),缺少结尾的单引号

原正则问题分析

原正则'.[^ \n']*'(?!')的问题在于没有用锚点限定整个字符串范围,会错误匹配'''中的前两个单引号(即''),而添加^和$锚点后,能确保只匹配整个字符串是成对单引号包裹合法内容的情况,从根源上避免了奇数个单引号的匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 02:36:29