为什么这个 Oracle regexp_like
表达式测试为 FALSE?
我在 Oracle 11g 上运行此 PLSQL。
v_string 是一个 0 和两个空格。它在 REGEX101
处测试为 TRUE declare v_string varchar2(30) := '0 ';
begin
dbms_output.put_line('Length is ' || length(v_string) );
if regexp_like(v_string,'^[0-9A-Z\s]{1,3}$') then
dbms_output.put_line('TRUE');
else
dbms_output.put_line('FALSE');
end if;
end;
最佳答案
不应在括号表达式内使用简写字符类,因为它被视为 2 个单独的字符:\
和 s
。使用等效的 [:space:]
POSIX 字符类:
'^[0-9A-Z[:space:]]{1,3}$'
^^^^^^^^^
关于regex - 为什么这个 Oracle regexp_like 测试为 FALSE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44161449/