oracle正则匹配全部,sql – 返回Oracle中正则表达式的所有匹配项
您已经提供了数据样本,说明这是一行,但已将其显示为两个不同的行.所以这个例子基于你的话.
-- Sample of data from your question + extra row for the sake of demonstration
-- id column is added to distinguish the rows(I assume you have one)
with t1(id, col) as(
select 1, '^FO360,065^AEN,25,10^FD{CUSTOMERS1.CUST_NAME}^FS^FO360,095^AAN,15,12^FD{CUSTOMERS1.CUST_ADDR1}^FS' from dual union all
select 2, '^FO360,065^AEN,25,10^FD{CUSTOMERS2.CUST_NAME}^FS^FO360,095^AAN,15,12^FD{CUSTOMERS2.CUST_ADDR2}^FS' from dual
),
cnt(c) as(
select level
from (select max(regexp_count(col, '{\w+.\w+}')) as o_c
from t1
) z
connect by level <= z.o_c
)
select t1.id, listagg(regexp_substr(t1.col, '{\w+.\w+}', 1, cnt.c)) within group(order by t1.id) res
from t1
cross join cnt
group by t1.id
结果:
ID RES
---------------------------------------------------------
1 {CUSTOMERS1.CUST_ADDR1}{CUSTOMERS1.CUST_NAME}
2 {CUSTOMERS2.CUST_ADDR2}{CUSTOMERS2.CUST_NAME}
根据问题的@a_horse_with_no_name comment,实际上,更换其他与模式不匹配的内容要简单得多.这是一个例子:
with t1(col) as(
select '^FO360,065^AEN,25,10^FD{CUSTOMERS.CUST_NAME}^FS^FO360,095^AAN,15,12^FD{CUSTOMERS.CUST_ADDR1}^FS' from dual
)
select regexp_replace(t1.col, '({\w+.\w+})|.', '\1') res
from t1
结果:
RES
-------------------------------------------
{CUSTOMERS.CUST_NAME}{CUSTOMERS.CUST_ADDR1}
oracle正则匹配全部,sql – 返回Oracle中正则表达式的所有匹配项相关推荐
- 免安装Oracle客户端使用PL/SQL连接Oracle
免安装Oracle客户端使用PL/SQL连接Oracle 大家都知道,用PL/SQL连接Oracle,是需要安装Oracle客户端软件的.有没要想过不安装Oracle客户端直接连接Orac ...
- python正则findall函数的用法_python中正则表达式 re.findall 用法
python中正则表达式 re.findall 用法 Python 正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了r ...
- oracle怎么优化动态sql语句,oracle动态sql语句处理
动态SQL语句处理:根据要处理的sql语句的作用不同,可以使用三种不同类型的动态sql方法:使用execute immediate语句可以处理包括ddl(create.alter和drop).DCL( ...
- oracle创建主键sql语句,Oracle创建主键自增表(sql语句实现)及触发器应用
Oracle创建主键自增表(sql语句实现)及触发器应用 1.创建表 复制代码 代码如下: createtableTest_Increase( useridnumber(10)NOTNULLprima ...
- 无需安装Oracle,用PL/SQL直接连接Oracle服务器
用PL/SQL连接Oracle的时候,没有必要安装Oracle服务器,只要安装一个Oracle客户端,然后使用绿色版PL/SQL连接就可以了.具体操作如下: 1.下载Oracle客户端 http:// ...
- sql oracle分页查询,【SQL】Oracle分页查询的三种方法-Oracle
[SQL]Oracle分页查询的三种方法 采用伪列 rownum 查询前10条记录 [sql] select * from t_user t where ROWNUM <10; 按照学生ID排名 ...
- vb.net 正则 替换 第n个_Python中正则表达式模块详解
作者:python来源:SegmentFault 思否社区 正则表达式用来处理字符串,对字符串进行检索和替换,另外正则在python爬虫的应用也是相当广泛! 特点 灵活性.逻辑性和功能性非常强 可以迅 ...
- Javascript中正则表达式的全局匹配模式
先看一道JavaScript题目,据说是国内某知名互联网企业的JavaScript笔试题,如果对正则的全局匹配模式不了解的话可能会对下面的输出结果感到疑惑. View Code var str = & ...
- python 正则findall右斜杠_python中正则表达式的使用
本文将介绍几个最常用的正则符号,以及正则表达式的应用场景. 如果说[数学表达式]刻画的是数字的内在规律,那么[正则表达式]则是用来刻画和描述字符串内在规律的表达式.记得刚接触python时学习过sli ...
最新文章
- ue4 导出模型_UE4构建光照后模型变黑,二套UV解决办法
- python【蓝桥杯vip练习题库】ALGO-189 P0505(阶乘问题)
- Elasticsearch 7.0中引入的新集群协调子系统如何使用?
- 【Android 应用开发】 Application 使用分析
- 下边框_OPPO Find X2颜值有多高?超窄下边框+瀑布屏,看完大写的服气
- 发微博/文章设计思路
- python读音播报-基于python GUI开发的点名小程序(语音播报)
- FP Growth算法
- pbrt源码中用全主元消去法求矩阵逆的实现
- 【Rust日报】2020-05-05:窥探Zoom, Lambda部署, slip等
- Android内存分析工具
- 华三路由交换配置命令_华三华为交换机路由器配置常用命令
- Visual Leak Detector内存泄漏检测工具,vld使用及原理
- DSPE-PEG-TH(AGYLLGHINLHHLAHL(Aib)HHIL) 磷脂(二硬脂酰基磷脂酰乙醇胺)-聚乙二醇-TH(AGYLLGHINLHHLAHL(Aib)HHIL)
- ijkplayer系列1:ijkplayer介绍
- VC++游戏编程基础无法找到“d3d9.h”问题
- 2.19 校验码的概念
- Win2000 入侵工具集v1.0
- c语言程序设计(微课版),C语言程序设计教程(微课版)
- 输入一个整数,判断这个数是否为素数,(素数是除1以外只能被1和他本身整除的自然数)
热门文章
- localStorage封装借口store.js的使用
- 《Web前端开发修炼之道》-读书笔记CSS部分
- 算法题解:旋转数组的最小数字
- .NetCore模拟Postman的BasicAuth生成Authrization
- 第7章 输入/输出系统
- H5网页适配 iPhoneX,就是这么简单
- 《Two Dozen Short Lessons in Haskell》(二十)分数
- 介绍针对企业级Flex开发的开源项目FlexibleShare
- r语言转化为python_数值型与字符型转换总结|R语言
- int最大值java_Java 中一个int型数组的求最大值最小值 | 学步园