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]

更多推荐

SQL正则表达式