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

MySQL REGEXP匹配空格分隔数字的问题排查

问题分析与解决方案

你的正则表达式存在一个明显错误:在匹配数字组之间的分隔符时,你同时写了普通空格和[[:space:]],比如[0-9]{4} [[:space:]] [0-9]{4},这相当于要求数字组之间必须有两个空白字符(一个明确的空格 + 一个[[:space:]]匹配的空白),但你的目标字符串里数字组之间只有单个空格,因此所有匹配都返回0。

修正方案

只需要保留一种空白匹配方式即可,两种选择:

  • 若仅需匹配普通空格:直接写单个空格
  • 若需兼容任意空白字符(如制表符、换行符):使用[[:space:]]

修正后的SQL语句

  1. 匹配完整的"4位数字+空格+4位数字"字符串:
-- 仅匹配普通空格
SELECT '0630 3062' REGEXP '^[0-9]{4} [0-9]{4}$';
-- 兼容任意空白字符
SELECT '0630 3062' REGEXP '^[0-9]{4}[[:space:]][0-9]{4}$';
  1. 匹配包含"4位数字+空格+4位数字"的任意字符串:
SELECT 'Employee 346 retrad: 0630 3062' REGEXP '[0-9]{4} [0-9]{4}';
  1. 匹配包含"任意长度数字+空格+任意长度数字"的字符串:
SELECT 'Employee 346 retrad: 0630 3062' REGEXP '[0-9]+ [0-9]+';
SELECT 'Employee 346 retrad: 0630 3062 1657 in July Assessment' REGEXP '[0-9]+ [0-9]+';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 21:50:38