Oracle PL/SQL正则表达式之脱字符caret(^)与中括号square

liuxiang 2011-09-03

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

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

  1. SQL> select 1 x from dual where regexp_like('0a','^[0-9]');  
  2.    
  3.          X  
  4. ----------   
  5.          1  
  6.    
  7. SQL> select 1 x from dual where regexp_like('1a','^[0-9]');  
  8.    
  9.          X  
  10. ----------   
  11.          1  
  12.    
  13. SQL> select 1 x from dual where regexp_like('a0','^[0-9]');  
  14.    
  15.          X  
  16. ----------   
  17.    
  18. SQL>  
  19.   
  20. '^[0-9]'匹配以数字开头的。  
  21.   
  22. -----------------------------------------------------------------   
  23.   
  24. SQL> select 1 x from dual where regexp_like('111','[^0-9]');  
  25.    
  26.          X  
  27. ----------   
  28.    
  29. SQL> select 1 x from dual where regexp_like('1a11','[^0-9]');  
  30.    
  31.          X  
  32. ----------   
  33.          1  
  34.    
  35. SQL> select 1 x from dual where regexp_like('111a','[^0-9]');  
  36.    
  37.          X  
  38. ----------   
  39.          1  
  40.    
  41. SQL>  
  42.   
  43. '[^0-9]'匹配包含有不是数字的。  
  44.   
  45. [0-9]等价于[:digit:]  

相关推荐

ganyouxianjava / 0评论 2012-05-31