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

如何用REGEXP_LIKE匹配精确的3-2-4位空格分隔数字模式?

解决方案:精确匹配XXX XX XXXX数字模式

你的问题出在原正则未限制目标模式的前后不能是数字,导致最后一组数字超过4位时,前4位会被误匹配。以下是两种可行的修正方案:

方案1:使用单词边界(\b)

单词边界会匹配字母数字(含下划线)与非字母数字的分界,确保目标数字组前后不会被其他数字拼接。

REGEXP_LIKE(column1, '\b\d{3}\s\d{2}\s\d{4}\b')

适用场景:目标模式前后是标点、空格、字母或字符串首尾,且无需排除下划线的情况。

方案2:使用负向断言(Oracle 11g及以上版本支持)

通过负向断言严格限制目标模式的前/后不能是数字,匹配精度更高:

REGEXP_LIKE(column1, '(?<!\d)\d{3}\s\d{2}\s\d{4}(?!\d)')
  • (?<!\d):断言当前位置前面不是数字
  • (?!\d):断言当前位置后面不是数字
    适用场景:需要彻底排除模式前后出现数字的情况,不管前后是何种非数字字符。

验证示例

  • 匹配成功的内容:abc 123 45 6789 def、123 45 6789、x123 45 6789!
  • 匹配失败的内容:123 45 67890、1234 56 7890、12 345 6789

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:25:40