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

SQL中过滤重复两位数字模式超过3次的正则表达式实现

在SQL中过滤包含两位数字模式重复4次及以上的字符串

要实现你的需求——保留两位数字重复≤3次的字符串,过滤重复≥4次的,核心是用正则匹配出两位数字连续重复4次的模式,再反向筛选。

核心正则逻辑

使用正则表达式 (\d{2})\1{3},拆解如下:

  • (\d{2}):捕获任意两位数字作为匹配组
  • \1:引用刚才捕获的两位数字
  • {3}:要求该匹配组再重复3次,加上最初的1次,总共形成4次连续重复(比如12重复4次就是12121212)

各主流SQL数据库的实现代码

MySQL/MariaDB

利用REGEXP操作符,筛选不匹配目标模式的记录:

SELECT your_column
FROM your_table
WHERE your_column NOT REGEXP '([0-9]{2})\\1{3}';

注:MySQL中反向引用需要双写反斜杠转义,即\\1

PostgreSQL

使用!~(不匹配正则)操作符:

SELECT your_column
FROM your_table
WHERE your_column !~ '(\d{2})\1{3}';

SQL Server

SQL Server的LIKE不支持反向引用,改用PATINDEX函数判断是否存在匹配模式,返回0表示无匹配:

SELECT your_column
FROM your_table
WHERE PATINDEX('%([0-9][0-9])\1\1\1%', your_column) = 0;

验证示例

测试以下数据时,结果符合预期:

  • 121212:保留(仅3次重复)
  • 12121212:过滤(4次重复)
  • 99999999:过滤(99重复4次)
  • 56785678:保留(仅2次重复)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:31:19