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

MySQL中使用正则表达式匹配指定模式字符串的技术咨询

MySQL匹配指定模式字符串的解决方案

要实现你需要的匹配规则,我们可以通过两个正则条件组合来完成——既匹配基本的模式结构,又排除不符合要求的特殊情况,这样兼容性更好(适配大多数MySQL版本)。

最终查询语句

SELECT your_column_name
FROM your_table_name
WHERE 
  -- 匹配核心模式:开头非空字符 + 短横线 + 非空字符 + 结尾的in ('true')
  your_column_name REGEXP '^.+-.+in \\(\'true\'\\)$'
  -- 排除短横线与in ('true')之间存在" and "的情况
  AND your_column_name NOT REGEXP '-.* and .*in \\(\'true\'\\)';

规则拆解与解释

我们逐个对应你的需求:

  • 以至少一个非空字符开头:正则里的^.+匹配字符串开头的至少一个任意非空字符(^锚定开头,.+匹配1个及以上任意字符)。
  • 后跟字面量短横线-:直接用-匹配字面量短横线,确保开头字符后紧跟这个符号。
  • 再后跟至少一个非空字符:-.+里的第二个.+完成这部分要求,匹配短横线后的至少一个非空字符。
  • 最后衔接in ('true'):in \\(\'true\'\\)$匹配结尾的目标字面量(括号和单引号是正则特殊字符,所以用双反斜杠转义,$锚定字符串结尾)。

额外的排除规则:短横线与in ('true')之间不得出现" and ",通过NOT REGEXP '-.* and .*in \\(\'true\'\\)'实现——这个正则会匹配所有短横线后出现" and "再到in ('true')的字符串,用NOT排除它们。

示例验证

  • ✅ 符合规则:segment-123 in ('true') → 满足核心模式,且短横线与目标字面量之间无" and "。
  • ❌ 不符合规则:content-foo and segment in ('true') → 会被第二个条件排除,因为短横线后出现了" and "子串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:26:28