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

Oracle数据库REGEXP_LIKE匹配特殊字符返回全表行求修正

Oracle REGEXP_LIKE 匹配特殊字符的正确写法

你的问题出在正则里的元字符未转义:*、?、[、]是正则的特殊符号,直接写会被当作匹配规则而非字面字符。比如单独的*会匹配任意内容,导致返回全表数据。

正确的正则写法需要对这些元字符进行转义,Oracle中用反斜杠\转义(多数场景下单反斜杠即可):

REGEXP_LIKE(DESCRIPTION, '(&|\*|>=|;|\?|  |\[|\])')

也可以用字符类简化写法,字符类里的部分元字符无需转义:

REGEXP_LIKE(DESCRIPTION, '>=|  |[&*;?\[\]]')

各部分说明:

  • \*:匹配字面量*
  • \?:匹配字面量?
  • \[/\]:匹配字面量[/]
  • >=:直接匹配>=字符串
  • :匹配连续两个空格
  • &、;:非元字符,可直接在正则中使用

完整查询示例:

SELECT *
FROM your_table_name
WHERE REGEXP_LIKE(DESCRIPTION, '>=|  |[&*;?\[\]]');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 10:48:19