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

SQL正则表达式字符长度问题:3字符合规单词判定错误

问题分析

原正则表达式的核心问题是将字符串拆分为两段独立匹配:第一段要求最少2个纯字母字符,第二段要求最少2个包含连字符、空格等的字符,两段总长度至少为4,因此3字符的单词无论如何都无法满足匹配条件。

另外原正则还存在两个冗余/歧义问题:

  • 第一部分的{2,200}+中,+是多余的占有量词,对匹配逻辑无正向作用
  • 第二部分字符集里的[-a-zA-Z- ...]包含重复的连字符,且连字符位于字符集中间容易引发范围歧义(比如-a-z会被解析为从-到z的ASCII范围,而非单独的连字符)
解决方案

将所有允许的字符合并到同一个字符类中,统一设置整体长度范围为2-200(覆盖你需要的3字符场景),同时修正字符集的歧义问题:

CASE WHEN REGEXP_LIKE(LB_DRIVER_NAME_LANM, '^[a-zA-ZâäãéëèéçôïîñÃÉËÈÉÇÔÏÎÑ -''ª]{2,200}$') THEN 1 ELSE 0 END

关键调整点

  • 合并字符集:把原正则的两段字符集合并,避免分段的长度限制
  • 修正连字符位置:将连字符放在字符集末尾,避免被解析为范围符号
  • 移除多余的+量词:简化正则逻辑,避免不必要的占有匹配
  • 统一长度限制:整体设置{2,200},确保2到200字符的字符串(包括3字符)都能匹配

如果你的需求是允许姓名包含分隔符(比如连字符、空格)但仍支持单部分的短姓名(如"Ann"),这个调整完全适用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 00:05:18