例子一 求last_name中含有G[一个字符]g的名称 select * from employees where regexp_like (last_name,'(G.g){1}') ; LAST_NAME EMPLOYEE_ID MANAGER_ID -------------------- ----------- ---------- Gaga 203 200 例子二 insert into employees values('Regexp02_test',208,200); 求出last_name名称中含有数字的 select * from employees where regexp_instr(last_name,'[[:digit:]]')>1 ; LAST_NAME EMPLOYEE_ID MANAGER_ID -------------------- ----------- ---------- Regexp02_test 208 200 例子三 截取last_name数值之前的字符串 col last_name format a20 select regexp_substr(last_name,'[[:alpha:]]*') last_name,employee_id,manager_id from employees; LAST_NAME EMPLOYEE_ID MANAGER_ID -------------------- ----------- ---------- Dereck 100 1 Gary 200 100 Klec 300 100 Gaga 203 200 Wendy 204 200 Xi 205 200 Tinan 206 200 Ling 207 200 Owen 301 300 Yi 302 300 Regexp 208 200 11 rows selected. 例子四 将last_name中的数值替换成**号 col last_name format a20 select regexp_replace(last_name,'[[:digit:]]','*') last_name,employee_id,manager_id from employees; LAST_NAME EMPLOYEE_ID MANAGER_ID -------------------- ----------- ---------- Dereck 100 1 Gary 200 100 Klec 300 100 Gaga 203 200 Wendy 204 200 Xi 205 200 Tinan 206 200 Ling 207 200 Owen 301 300 Yi 302 300 Regexp**_test 208 200 11 rows selected. 例子五 计算last_name中数值出现的次数 col last_name format a20 select last_name,regexp_count(last_name,'[[:digit:]]') t_count,employee_id,manager_id from employees; LAST_NAME T_COUNT EMPLOYEE_ID MANAGER_ID -------------------- ---------- ----------- ---------- Dereck 0 100 1 Gary 0 200 100 Klec 0 300 100 Gaga 0 203 200 Wendy 0 204 200 Xi 0 205 200 Tinan 0 206 200 Ling 0 207 200 Owen 0 301 300 Yi 0 302 300 Regexp02_test 2 208 200 11 rows selected.
学习总结: 1.正则表达式的作用及oracle 10g开始支持功能并遵循(POSIX)标准 2.正则表达式所需的元操作字符 3.正则表达式常见的几个函数并且实践如果使用
如对本文有疑问, 点击进行留言回复!!
oracle:docker镜像部署11g 创建用户名,远程连接
网友评论