【開發篇sql】 條件和表示式(八) 10g 正規表示式
8,10g 正規表示式
很多時候需要對資料做處理,10g之前通常會自定義一些通用函式來實現一些規則,10g開始提供了幾個函式來支援正規表示式:
REGEXP_LIKE
REGEXP_REPLACE
REGEXP_INSTR
REGEXP_SUBSTR
先來看看oracle10g正規表示式定義的運算子。
\ 反斜槓有四個不同意義:取本身的值,引用下一個字元,介紹一個運算子,什麼也不做
示例:
SQL> select * from dual where regexp_like('aa111b','\^') ;
DUMMY
-----
SQL> select * from dual where regexp_like('aa11^1b','\^') ;
DUMMY
-----
X
SQL> select * from dual where regexp_like('aa11^1b','\a') ;
DUMMY
-----
X
SQL> select * from dual where regexp_like('aa11^1b','\aa1') ;
DUMMY
-----
X
SQL> select * from dual where regexp_like('aa11^1b','\aa2') ;
DUMMY
-----
SQL> select * from dual where regexp_like('aa11^1b','\') ;
DUMMY
-----
X
* 匹配0個或者多個表示式
SQL> select * from dual where regexp_like('aa11^1b','*') ;
DUMMY
-----
X
SQL> select * from dual where regexp_like('aa11^1b','a*1') ;
DUMMY
-----
X
+ 匹配一個或者多個表示式
SQL> select * from dual where regexp_like('aa11^1b','a*1+1*1') ;
DUMMY
-----
X
? 匹配0個或者一個表示式
SQL> select * from dual where regexp_like('aa11^1b','?b') ;
DUMMY
-----
X
SQL> select * from dual where regexp_like('aa11^1b','?bb') ;
DUMMY
-----
SQL> select * from dual where regexp_like('aa11^1b','?a1') ;
DUMMY
-----
X
| 指兩項之中的選擇
SQL> select * from dual where regexp_like('aa11^1b','?a1|?bb') ;
DUMMY
-----
X
^ 匹配開頭的字元
SQL> select * from dual where regexp_like('aa11^1b','^aa1') ;
DUMMY
-----
X
SQL> select * from dual where regexp_like('aa11^1b','^aa2') ;
DUMMY
-----
$ 匹配結尾的字元
SQL> select * from dual where regexp_like('aa11^1b','1b$') ;
DUMMY
-----
X
SQL> select * from dual where regexp_like('aa11^1b','11b$') ;
DUMMY
-----
SQL> select * from dual where regexp_like('aa11^1b','a11$') ;
DUMMY
-----
. 匹配任何字元除了null
SQL> select * from dual where regexp_like('aa11^1b','\^1.$') ;
DUMMY
-----
X
SQL> select * from dual where regexp_like('aa11^1b','\^.$') ;
DUMMY
-----
[] 括號表示式
SQL> select * from dual where regexp_like('aa11^1b','[\^.$]+[\^1.$]') ;
DUMMY
-----
X
() 子表示式的開始和結尾
SQL> select * from dual where regexp_like('aa11^1b','(^a)+([\^.$]+[\^1.$])') ;
DUMMY
-----
SQL> select * from dual where regexp_like('aa11^1b','(^a)+(.)+([\^.$]+[\^1.$])') ;
DUMMY
-----
X
SQL> select * from dual where regexp_like('aa11^1b','(^a)+|([\^.$]+[\^1.$])') ;
DUMMY
-----
X
{m} 精確的匹配次數
{m,} 至少m次匹配
{m,n} m到n次匹配
SQL> Select REGEXP_REPLACE('aabbcc','(aa){1}', 'xx') FROM dual;
REGEXP_REPLACE('AABBCC','(AA){
------------------------------
xxbbcc
SQL> Select REGEXP_REPLACE('aabbcc','(aa){1,}', 'xx') FROM dual;
REGEXP_REPLACE('AABBCC','(AA){
------------------------------
xxbbcc
SQL> Select REGEXP_REPLACE('aabbcc','(a){1,}', 'xx') FROM dual;
REGEXP_REPLACE('AABBCC','(A){1
------------------------------
xxbbcc
SQL> Select REGEXP_REPLACE('aabbcc','(a){2,}', 'xx') FROM dual;
REGEXP_REPLACE('AABBCC','(A){2
------------------------------
xxbbcc
SQL> Select REGEXP_REPLACE('aabbcc','(ab){2,}', 'xx') FROM dual;
REGEXP_REPLACE('AABBCC','(AB){
------------------------------
aabbcc
SQL> Select REGEXP_REPLACE('aabbcc','(ab){1,}', 'xx') FROM dual;
REGEXP_REPLACE('AABBCC','(AB){
------------------------------
axxbcc
SQL> Select REGEXP_REPLACE('aabbcc','(a){1,2}', 'xx') FROM dual;
REGEXP_REPLACE('AABBCC','(A){1
------------------------------
xxbbcc
SQL> Select REGEXP_REPLACE('aabbcc','(ab){1,2}', 'xx') FROM dual;
REGEXP_REPLACE('AABBCC','(AB){
------------------------------
axxbcc
(待續)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16179598/viewspace-662803/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【開發篇sql】 條件和表示式(十) 特定的dmlSQL
- 【開發篇sql】 條件和表示式(九) group by語句SQL
- 【開發篇sql】 條件和表示式(六) Exists, not exsists,in ,not inSQL
- 【開發篇sql】 條件和表示式(五) 集合運算SQL
- 【開發篇sql】 條件和表示式(三) Null詳解SQLNull
- 【開發篇sql】 條件和表示式(一) 資料型別SQL資料型別
- SQL正規表示式SQL
- 【開發篇sql】 條件和表示式(二) 資料型別的比較規則SQL資料型別
- Oracle 10g正規表示式Oracle 10g
- oracle 10g 正規表示式Oracle 10g
- 【開發篇sql】 條件和表示式(四) 幾個常見的偽列SQL
- 通用函式和條件表示式函式
- sql裡的正規表示式SQL
- 【開發篇sql】 條件和表示式(七) decode,case when,connect by 語句SQL
- 正規表示式
- 正規表示式教程——語法篇
- Oracle sql中的正規表示式OracleSQL
- SQL語句與正規表示式SQL
- 【正規表示式】常用的正規表示式(數字,漢字,字串,金額等的正規表示式)字串
- JavaScript學習總結(八)正規表示式JavaScript
- 【JavaScript】正規表示式JavaScript
- php –正規表示式PHP
- 正規表示式 教程
- 正規表示式 split()
- java正規表示式Java
- PHP正規表示式PHP
- javascript正規表示式JavaScript
- 【java】正規表示式Java
- 初探正規表示式
- [js]正規表示式JS
- js正規表示式JS
- javascript–正規表示式JavaScript
- ORACLE 正規表示式Oracle
- MySQL 正規表示式MySql
- oracle正規表示式Oracle
- js 正規表示式JS
- ultraedit正規表示式
- 正規表示式合集