我需要檢查一個輸入字符串的「前6個字符的串」用於純串的純字符串。檢查使用REGEXP_LIKE
declare
p_str varchar2(30) := 'ABCD1240';
l_result varchar2(20);
begin
if REGEXP_LIKE(substr(p_str,1,6), '[[:alpha:]]') then
dbms_output.put_line('It is a pure string');
else
dbms_output.put_line('It is an alphanumeric');
end if;
end;
/
我可以看到,該字符串是ABCD1290字母數字,因爲它包含12 但前6個字符,即打印的輸出,否則說。
我做得不對的REGEXP_LIKE「阿爾法」? 我以爲alpha應該是純字符而不是數字。 在這裏,ABCD1290應該給我:作爲輸出的字母數字。 ABCDXY90應該是:純字符串
嘗試'^ [:阿爾法:]] {6}' – sln 2014-09-10 15:32:04
我不知道在Oracle正則表達式,但我猜你忘了基數:'^ [[:alpha:]] + $'。 – sp00m 2014-09-10 15:32:13
你不想'substr'從字符0開始? – sln 2014-09-10 15:34:09