0

我有这样的数据

U=ms&sv1=5xdUE3w0&sv2=3150912100&sv3=kuqd1nwca0&sv4= altima
U=ms&sv1=5xdUE3w0&sv2=3150912100&sv3=kuqd1nwca0&sv4= altima_dhfdbf&
U=ms&sv1=5xdUE3w0&sv2=3150912100&sv3=kuqd1nwca0&sv4= altima&ddhfy6574dfx

当我使用('date','sv4=(.*?)[_|&]',1,2)时,我只能从最后两个中获取,然后我需要将其('data','sv4=(.*?)$',1,2)用于剩余数据。

现在我需要一次处理所有这些。

O/P : altima  from all the above data.

请就此提出建议,如何处理。

谢谢!!!

4

2 回答 2

1

尝试使用:

sv4=(.*?)(?:[_&]|$)

请注意,您不需要|在字符类中指定“或”。

我不确定非捕获组是否在 oracle 中可用并且无法对其进行测试。但这在 python、c#、php 等中会起作用。

于 2013-09-13T10:31:16.343 回答
1
regexp_substr(string,'sv4= (.*?)(_|&|$)',1,1,'i',1)

最后一个参数 1,只提取第一个子表达式。

于 2013-09-13T10:36:30.420 回答