为什么这个Oracle regexp_like
表达式测试错误?
我在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;
答案 0 :(得分:4)
您不应在括号表达式中使用速记字符类,因为它被视为2个单独的字符\
和s
。使用等效的[:space:]
POSIX字符类:
'^[0-9A-Z[:space:]]{1,3}$'
^^^^^^^^^