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

Oracle SQL中Regexp_Substr大小写匹配及替代%的相关问题

Oracle正则表达式相关问题解答

1. 让REGEXP_SUBSTR支持大小写混合匹配的写法

Oracle的REGEXP_SUBSTR可通过第五个参数指定匹配模式,传入'i'即可开启不区分大小写匹配。另外注意你原语句里的函数名拼写错误(regexp_susbtr应为regexp_substr),同时可以调整正则表达式更贴合需求:

select a.*,
regexp_substr(comment, '(i?mmig+\w*)|(imig+\w*)', 1, 1, 'i') as selected
from customer a
where lower(comment) like '%imm%g%'
or lower(comment) like '%im%g%';

说明:

  • 第五个参数'i'表示忽略大小写
  • 正则(i?mmig+\w*)|(imig+\w*)精准匹配imm/im开头、后续带g的单词
  • 第三个参数1代表从字符串第1位开始匹配,第四个参数1代表返回第1个匹配结果

2. REGEXP_LIKE语句与LIKE语句的等价性判断

是的,where regexp_like(comment, 'immig|imig','i') 和修正语法后的以下语句等价:

where lower(comment) like '%immig%'
or lower(comment) like '%imig%';

两者都用于匹配comment字段中包含immig或imig子串的记录,且均不区分大小写。

3. Oracle正则中替代LIKE里%的写法

在Oracle的REGEXP_SUBSTR和REGEXP_LIKE中,用.*替代LIKE里的%:

  • .*:匹配任意长度的任意字符(包括0个字符,完全对应%的功能)
  • 若需匹配至少一个任意字符,则用.+(类似LIKE中多个_的组合,但_仅匹配单个字符)

比如要匹配m和g之间有任意字符,正则可写为m.*g(需忽略大小写则加'i'模式)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 05:46:13