我有以下文本要搜索:
#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/