sql - Oracle 中 REGEXP_SUBSTR 的正则表达式

标签 sql regex oracle regexp-substr

我有以下文本要搜索:

#S7Z OK
#Wed Feb 18 07:16:26 GMT 2015
expiration=10.0
lastModified=1424192425832
length=466472
path=/name/_master_/563/5638ad54-8079-4399-ba2b-3257b6e6c7fd.pdf 
userType=

每个 = 前面的单词是属性的名称。对于每个属性名称,我想获取属性值。这意味着我正在寻找与 regexp_substr 一起使用的正则表达式来获取每个已知属性的值。

类似这样的事情:

SELECT REGEXP_SUBSTR(
'#S7Z OK
#Wed Feb 18 07:16:26 GMT 2015
expiration=10.0
lastModified=1424192425832
length=466472
path=/name/_master_/563/5638ad54-8079-4399-ba2b-3257b6e6c7fd.pdf 
userType=',
'path=.+')
FROM dual

返回: 路径=/name/master/563/5638ad54-8079-4399-ba2b-3257b6e6c7fd.pdf

但我只想要这个值,即“/name/master/563/5638ad54-8079-4399-ba2b-3257b6e6c7fd.pdf”。 它也应该适用于过期、lastModified 等,也就是说,我不仅仅想搜索 url,而是搜索任何类型的值。

如何在一个正则表达式中实现这一目标?

最佳答案

SELECT REGEXP_SUBSTR(
'#S7Z OK
#Wed Feb 18 07:16:26 GMT 2015
expiration=10.0
lastModified=1424192425832
length=466472
path=/name/_master_/563/5638ad54-8079-4399-ba2b-3257b6e6c7fd.pdf 
userType=',
'path=(.+)', 1, 1, null, 1)
FROM dual;

关于sql - Oracle 中 REGEXP_SUBSTR 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28580690/

相关文章:

sql - PostgreSQL 仅选择日期与表中特定周数匹配的行

oracle - oracle中的序列创建

java - 应该使用 Read committed 还是 Serializable 作为隔离级别的场景?

mysql - 从多个几乎相同的表中选择具有最大日期的行

php - 检查'pdo-> query foreach'是否返回null

mysql - 为什么在这个 sql 中,函数 AVG() 必须在子查询中?

regex - 什么正则表达式可以捕获从 ' 标记到行尾的所有内容?

javascript - RegExp 在三位小数后放置零 (0)

XML 模式上的 Java 字符串替换

sql - PL/SQL 包级异常处理