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

Oracle SQL中如何查找字符串中的连续字母字符?

在Oracle SQL中匹配含连续5个及以上字母的字符串

正确解决方案

要筛选出字符串中存在至少5个连续英文字母的记录,使用以下SQL语句:

SELECT * FROM test_dummy 
WHERE REGEXP_LIKE(var_col, '[A-Za-z]{5,}');

针对你遇到的问题的说明

  1. 你提到第一个正则[A-Za-z]{5,}返回所有长度超5的字符串,这应该是误解或测试数据的偏差。以你的示例数据为例:

    • Test(4个字母)、Test1(4个字母+1数字):不会被匹配
    • Tesssst(7个连续字母)、TTTTest(6个连续字母)、ABCDTest(8个连续字母):会被正确匹配
      如果确实出现不符合预期的匹配,请检查是否误将正则写成了.{5,}(该正则匹配任意5个及以上字符,而非仅字母)。
  2. 你使用的第二个正则(.+1)\1{3,}?逻辑错误,它的作用是匹配重复的子串(比如连续重复的字符),因此只会返回TTTTest、Tesssst这类含重复连续字符的记录,无法覆盖ABCDTest这类无重复但连续的字母串。

扩展:匹配全字母且长度≥5的记录

如果你的需求是筛选整个字符串都是字母且长度≥5(而非仅包含连续5个字母),可以使用锚定正则:

SELECT * FROM test_dummy 
WHERE REGEXP_LIKE(var_col, '^[A-Za-z]{5,}$');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 05:03:30