菜单

金沙国际棋牌下载官网oracle正则表达式regexp

2020年1月15日 - 计算机服务器

/*
ORACLE中的帮衬正则表明式的函数主要有上边七个: 1,REGEXP_LIKE :与LIKE的功效相近
2,REGEXP_INST瑞鹰 :与INST酷路泽的功力相近
3,REGEXP_SUBSTQashqai :与SUBSTENCORE的效应形似
4,REGEXP_REPLACE :与REPLACE的效能相符
它们在用法上与Oracle SQL 函数LIKE、INSTENCORE、SUBSTPRADO 和REPLACE 用法相仿,
唯独它们选拔POSIX 正则表达式代替了老的百分号(%)和通配符(_)字符。
POSIX 正则表明式由正规的元字符(metacharacters)所构成:
‘^’
相配输入字符串的初步地点,在方括号表达式中利用,这个时候它意味着不收受该字符集合。
‘$’ 相配输入字符串的结尾地方。假诺设置了 RegExp 对象的 Multiline
属性,则 $ 也匹
配 ‘/n’ 或 ‘/r’。
‘.’ 相称除换行符之外的任何单字符。
‘?’ 匹配后边的子表达式零次或二回。
‘+’ 相配前边的子表明式二次或频仍。
‘*’ 匹配前面的子表明式零次或频仍。
‘|’
指明两项之间的一个选项。例子’^([a-z]+|[0-9]+卡塔尔国$’代表具有小写字母或数字组合成的
字符串。
‘( 卡塔尔国’ 标识叁个子表明式的发端和了结位置。
‘[]’ 标志壹在那之中括号表明式。
‘{m,n}’
叁个标准地涌出次数约束,m=<现身次数<=n,'{m}’表示现身m次,'{m,}’表示起码
出现m次。
/num 相称 num,此中 num 是四个正整数。对所收获的相称的援用。
字符簇:
[[:alpha:]] 任何字母。
[[:digit:]] 任何数字。
[[:alnum:]] 任何字母和数字。
[[:space:]] 任何白字符。
[[:upper:]] 任何大写字母。
[[:lower:]] 任何小写字母。
[[:punct:]] 任何标点符号。
[[:xdigit:]] 任何16进制的数字,约等于[0-9a-fA-F]。
种种操作符的演算优先级
/转义符
(), (?:), (?=), [] 圆括号和方括号
*, +, ?, {n}, {n,}, {n,m} 限定符
^, $, anymetacharacter 地点和各样

*/
–创建表 create table fzq
(
  id varchar(4),
  value varchar(10)
);
–数据插入 insert into fzq values
(‘1′,’1234560’);
insert into fzq values
(‘2′,’1234560’);
insert into fzq values
(‘3′,’1b3b560’);
insert into fzq values
(‘4′,’abc’);
insert into fzq values
(‘5′,’abcde’);
insert into fzq values
(‘6′,’ADREasx’);
insert into fzq values
(‘7′,’123  45’);
insert into fzq values
(‘8′,’adc  de’);
insert into fzq values
(‘9′,’adc,.de’);
insert into fzq values
(’10’,’1B’);
insert into fzq values
(’10’,’abcbvbnb’);
insert into fzq values
(’11’,’11114560′);
insert into fzq values
(’11’,’11124560′);
–regexp_like
–查询value中以1从头60完毕的记录同期长度是7位
select * from fzq where value like ‘1____60’;
select * from fzq where regexp_like(value,’1….60′);
–查询value中以1初步60竣事的笔录同一时候长度是7位而且全部都以数字的笔录。
–使用like就不是很好落到实处了。
select * from fzq where regexp_like(value,’1[0-9]{4}60′);
— 也可以那样完成,使用字符集。
select * from fzq where regexp_like(value,’1[[:digit:]]{4}60′);
— 查询value中不是纯数字的笔录
select * from fzq where not regexp_like(value,’^[[:digit:]]+$’);
— 查询value中不分包其余数字的记录。
select * from fzq where regexp_like(value,’^[^[:digit:]]+$’);
–查询以12照旧1b始发的记录.不区分轻重缓急写。
select * from fzq where regexp_like(value,’^1[2b]’,’i’);
–查询以12还是1b启幕的记录.区分朗朗上口写。
select * from fzq where regexp_like(value,’^1[2B]’);
— 查询数据中带有空白的记录。
select * from fzq where regexp_like(value,'[[:space:]]’);
–查询全部包涵小写字母也许数字的笔录。
select * from fzq where regexp_like(value,’^([a-z]+|[0-9]+)$’);
–查询任何带有标点符号的记录。
select * from fzq where regexp_like(value,'[[:punct:]]’);
/*
驾驭它的语法就足以了。别的的函数用法相符。
*/

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图