【发布时间】:2018-09-21 18:04:16
【问题描述】:
我尝试通过正则表达式 '\b<word>\b' 检查字符串中是否存在特定单词,但似乎 \b 锚点在 REGEXP_SUBSTR 中不起作用:
例如检查单词ABC:
SELECT REGEXP_SUBSTR ('A, AB, ABC,ABCD', '\bABC\b') FROM DUAL;
但这里的结果是 (null)。我做错了什么?
【问题讨论】:
-
你想用
\b做什么?是否只需要获取ABC,不包括例如xABC、ABCy、xABCY? -
是的,我想检查整个单词 - 在我的情况下,检查单词 'ABC',而不是字符串 'ABC' 作为单词 'ABCD' 的一部分。
-
Oracle 正则表达式不支持
\b构造。您需要使用(^|[^[:alnum:]_])word($|[^[:alnum:]_])或(^|\W)word($|\W)
标签: regex oracle regexp-substr