Oracle PL/SQL正则表达式之脱字符caret(^)与中括号square brankets([])的组合使用小例

脱字符(^)放在方括号([])外面表示匹配以方括号([])里面的任何字符开头的字符串;

脱字符(^)放在方括号([])里面表示匹配包含有任何不在方括号([])里面的字符的字符串。

SQL> select 1 x from dual where regexp_like('0a','^[0-9]');
 
         X
----------
         1
 
SQL> select 1 x from dual where regexp_like('1a','^[0-9]');
 
         X
----------
         1
 
SQL> select 1 x from dual where regexp_like('a0','^[0-9]');
 
         X
----------
 
SQL>

'^[0-9]'匹配以数字开头的。

-----------------------------------------------------------------

SQL> select 1 x from dual where regexp_like('111','[^0-9]');
 
         X
----------
 
SQL> select 1 x from dual where regexp_like('1a11','[^0-9]');
 
         X
----------
         1
 
SQL> select 1 x from dual where regexp_like('111a','[^0-9]');
 
         X
----------
         1
 
SQL>

'[^0-9]'匹配包含有不是数字的。

[0-9]等价于[:digit:]

你可能感兴趣的:(oracle,sql,正则表达式)