天天看點

SQL正規表達式

SQL語句可以搭配正規表達式作為查詢條件,實作很多需求。

REGEXP_LIKE   比對:REGEXP_LIKE(String, Regexp) 
REGEXP_INSTR  包含
EGEXP_REPLACE 替換
REGEXP_SUBSTR 提取
           

正規表達式常用字元:

字元 說明
^ 比對字元串的開始位置,若用在中括号中[ ] 時,表示不比對括号中字元串
$ 比對字元串的末尾,若設定了表達式對象的Multiline屬性,則也比對’/n’或’/r’
. 比對單個字元
* 比對前面子表達式 0次或多次(至少有一次)
? 比對前面子表達式 0 次或 1 次 (至多有一次)
+ 比對前面子表達式 1 次或更多次
{m} 比對 m 次
{m,} 至少比對 m 次
{m, n} 至少比對 m 次但不超過 n 次
() 比對括号中全部字元
[] 比對括号中一個字元,範圍描述,如[0-9] [a-z] [A-Z]
{} 用于限定比對次數,如 {n}表示比對n個字元,{n,}表示至少比對n個字元,{n,m}表示至少n個最多m個
\ 轉義字元,如上基本符号比對都需要轉義字元 ,如 * 表示比對*号
\w 表示英文字母和數字
\W 表示非字母和數字
\d 表示數字
\D 表示非數字

常用的正規表達式:

比對由26個英文字母組成的字元串: ^[A-Za-z]+$
比對由26個英文字母的大寫組成的字元串: ^[A-Z]+$
比對由26個英文字母的小寫組成的字元串: ^[a-z]+$
比對由數字和26個英文字母組成的字元串: ^[A-Za-z0-9]+$
比對由數字和26個英文字母或者下劃線組成的字元串: ^\w+$
比對整數: ^-?[1-9]\d*$
比對正整數: ^[1-9]\d*$
比對負整數: ^-[1-9]\d*$
比對非負整數: ^[1-9]\d*|0$
比對非正整數: ^-[1-9]\d*|0$
電子郵箱: ^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$
URL	: ^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
IP位址:	^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
HTML标簽: ^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$
SQL語句: ^(select|drop|delete|create|update|insert).*$
郵政編碼: ^[1-9]\d{5}(?!\d)$
Unicode編碼中文字元串: ^[u4e00-u9fa5],{0,}$
空白行: \n[\s| ]*\r
首尾空格: (^\s*)|(\s*$)
雙位元組字元:	[^\x00-\xff]
           

繼續閱讀