【发布时间】:2015-12-06 00:56:58
【问题描述】:
我正在使用一个在 Java/PHP/regex 测试器中完美运行的正则表达式。
\d(?:[()\s#-]*\d){3,}
示例:https://regex101.com/r/oH6jV0/1
但是,尝试在 Oracle SQL 中使用相同的正则表达式不会返回任何结果。举个例子:
select *
from
(select column_value str from table(sys.dbms_debug_vc2coll('123','1234','12345','12 135', '1', '12 3')))
where regexp_like(str, '\d(?:[()\s#-]*\d){3,}');
这不会返回任何行。为什么这种行为如此不同?我什至使用了一个执行 POSIX ERE 的正则表达式测试器,但它仍然有效。
【问题讨论】: