sql - 如何使用唯一的正则表达式从 Oracle 行中获取重复数据?
问题描述
我的要求是有一个正则表达式,其中我的数据使用单个标签打开,但有多个结束标签
表中的列数据如下所示:
%tag1% %data1%%tag2% %data2%%tag2% %data3%%tag2%
我在我的正则表达式中尝试 /g 进行全局搜索,但它似乎不起作用。
我的 oracle 查询如下所示:
select regexp_substr(column_data, '(%tag1%)(.+?)%tag2%',1,1,'n')) from table;
我想从三个不同行的表中获取 data1、data2 和 data3。
这里重要的是正则表达式必须递归解析第二个标签。
%tag1%(获取此数据)%tag2%
%tag1% ... %tag2% (获取此数据) %tag2%
%tag1% ... %tag2% ... %tag2% (获取此数据) %tag2%
.. 等等...
我只能得到第一次出现。
谁能帮我在单个选择查询中获取这些数据?谢谢。
解决方案
推荐阅读
- javascript - ReactiveAggregate() + collection.update() -> Error: Expected to find a document to change
- razor - 我的新 CSProj 使用 SDK 格式,但 MVC Razor 视图针对的是 AspNetCore 而不是 AspNet
- json - 即使过程返回正确的值,数据集也没有值
- c# - 如何在 C# catch 块中获取异常代码
- c# - 诊断应用程序变慢和内存消耗(可能是 WCF 或 MongoDB C# 驱动程序)?
- javascript - 如何使用我的机器人修复此“附件不是构造函数”错误?
- macos - 无法在本地找到 docker 镜像
- python-3.x - ModuleNotFoundError:没有名为“tensorrt”的模块
- swift - 将 searchBar 添加到 tableHeaderView 会增加底部空白
- html - 用垂直行划分 HTML 表格中的单元格