![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
正则表达式
jgmydsai
道森oracle讲师,课程:sql高级查询改写
展开
-
去掉下划线并转首字母为大写
SQL> select REGEXP_REPLACE(INITCAP('abc_de_fghijkl_mn'), '(\w)[_]', '\1') 2 from dual 3 / REGEXP_REPLACE(INITCAP('ABC_DE------------------------------AbcDeFghijklMn有搞xml的知道这是干嘛的,嘿嘿原创 2013-07-20 21:35:55 · 2959 阅读 · 0 评论 -
regexp_replace按条件替换部分段
直接上语句看结果SQL> WITH tab AS 2 (SELECT '000000-00000h-010000-00000b-000000-000000-000000-000000-00002e-00003a' col FROM dual 3 ) 4 SELECT regexp_replace(col,'(0)([^0-][^-]+|[^-]+[^0-][^-]+|[^-]原创 2013-07-20 21:23:44 · 7752 阅读 · 0 评论 -
list字符串转为多行
测试view如下CREATE OR REPLACE VIEW v AS SELECT '0000000008,0000000009,0000000007' AS c1 FROM dual; 转为多行语句为SELECT REGEXP_SUBSTR(C1, '[^,]+', 1, LEVEL) VALUE_STR FROM VCONNECT BY LEVEL 用10G的没有RE原创 2014-02-25 13:37:52 · 1192 阅读 · 0 评论 -
返回非中文字符
群友问如何返回数据中的非中文字符。模拟数据源如下CREATE OR REPLACE VIEW v ASSELECT '你好,很好bbb' AS c1 FROM dual UNION ALLSELECT '你好#' AS c1 FROM dual UNION ALLSELECT '你好a' AS c1 FROM dual UNION ALLSELECT '你好z' AS c1 FRO原创 2014-01-13 12:01:38 · 909 阅读 · 0 评论 -
用正则表达式提取clob里的文本格式记录集
表结构如下SQL> desc test;Name Type Nullable Default Comments ---- ---- -------- ------- -------- C1 CLOB Y SQL> select count(*) from test; COUNT(*)---------- 1字段中内容为SU.SYSTEM_USER_原创 2013-11-19 11:12:21 · 1541 阅读 · 0 评论 -
用regexp_replace去注释
去掉视图中的注释原创 2013-07-19 22:27:24 · 1517 阅读 · 4 评论 -
正则基础之——贪婪与非贪婪模式
from: http://blog.csdn.net/lxcnn/article/details/47560301 概述贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为,贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配。非贪婪模式只被部分NFA引擎所支持。属于贪婪模式的量词,也叫做匹配优先量词,包转载 2013-09-13 10:12:11 · 897 阅读 · 0 评论 -
COOKBOOK 14.4 从不固定位置提取字符串的元素
cookbook中实现方式如下SQL> select msg, 2 substr(msg, 3 instr(msg,'[',1,1)+1, 4 instr(msg,']',1,1)-instr(msg,'[',1,1)-1) first_val, 5 substr(msg, 6 instr原创 2013-08-09 20:31:01 · 585 阅读 · 0 评论 -
COOKBOOK 14.6 搜索字母数字混合的字符串
cookbook原方法有错误,示例如下SQL> with v as ( 2 select 'ClassSummary' strings from dual union 3 select '3453430278' from dual union 4 select 'findRow 55' from dual union 5 sele原创 2013-08-09 21:07:16 · 605 阅读 · 0 评论 -
COOKBOOK 6.7 提取姓名的大写首字母缩写
cookbook里看到的案例,用正则改写如下with a as (select 'Stewie Griffin' as a1 from dual)select regexp_replace(a.a1, '([[:upper:]])(.*)([[:upper:]])(.*)', '\1.\3') as sx, '|' || regexp_replace(a.a1, '([[:原创 2013-08-07 20:34:06 · 823 阅读 · 0 评论 -
【11g】使用REGEXP_COUNT函数统计字符串出现的次数
from http://space.itpub.net/519536/viewspace-624634在Oracle的11g版本中引入了REGEXP_COUNT函数,使用这个函数可以统计字符串出现的次数,小观一下。1.REGEXP_COUNT函数语法参考REGEXP_COUNT (source_char, pattern [, position [, match_param]])转载 2013-08-25 10:59:36 · 1306 阅读 · 0 评论 -
Oracle正则表达式函数:regexp_like、regexp_substr、regexp_instr、regexp_replace
from http://www.2cto.com/database/201210/164205.htmlOracle正则表达式函数:regexp_like、regexp_substr、regexp_instr、regexp_replace Sql代码 Oracle使用正则表达式离不开这4个函数: 1。regexp_like转载 2013-08-25 11:01:06 · 10914 阅读 · 2 评论 -
字段中list值去重问题
SQL> with a as 2 (select 'a,b,c,a,d,e' as a1 3 from dual 4 union all 5 select '1,2,3,4,1,2' from dual) 6 select (select wmsys.wm_concat(distinct 7原创 2013-07-20 21:45:39 · 811 阅读 · 0 评论 -
字符串分拆函数
DROP TABLE t100/CREATE TABLE t100 AS SELECT LEVEL AS ID FROM dual CONNECT BY LEVEL <= 100/CREATE OR REPLACE TYPE VARCHAR2LIST AS VARRAY(50) OF VARCHAR2(4000)/CREATE OR REPLACE FUNCTION F_SPLIT_S原创 2013-09-02 10:54:51 · 1104 阅读 · 0 评论