我需要帮助理解PL / SQL中的REGEXP。
这很简单,我只想要一个验证Varchar2的验证器。 第一个字母应该是'a',而Varchar2上的其余字母只能是'b'并且下划线'_'。
例如,应接受此字符串:
aaa , ab , a_ , ab_b , a_b , abbbbbb_ , a___b_ , a_____b_b_b_b_b_b
以下是我理解应该有效的方法:
^[a]([b_]*)*
但是,如果我有像'abbbbjbbb'这样的字符串,它说它是有效的字符串吗?
什么是正确的模式?
这是我的匿名程序:
set serveroutput on size 1000000
DECLARE
v_result VARCHAR2(10);
v_bool BOOLEAN;
BEGIN
v_bool:=FALSE;
IF (REGEXP_LIKE('ab_b_b_bb','^[a]([b_]*)*'))
THEN
v_result:='VALID';
ELSE
v_result:='NOT VALID';
END IF;
dbms_output.put_line(v_result);
END;
提前致谢,
第一个问候,
伊万
答案 0 :(得分:3)
您只需要使用行结束^[a][b_]*$
。
[b_]*
并且还删除了不必要的组,因为{{1}}单独完成了你的工作..