oracle regexp_substr用于随机出现模式

时间:2015-11-20 10:16:36

标签: sql regex oracle regexp-substr

您好我需要找到一个随机出现在字符串中的模式

列中的值可能类似于

'k=34,n=WER-RTN,l=hy33,z=device'

'k=34,l=hy33,z=device,n=WER-RTN'

'n=WER-RTN,l=hy33,z=device,k=34'

我需要拿起n =到'的值,否则,如果它发生在最后的结尾。 但是n可以出现在字符串中的任何位置。

1 个答案:

答案 0 :(得分:1)

如果要获取WITH t AS (SELECT 'k=34,n=WER-RTN,l=hy33,z=device' text FROM dual UNION SELECT 'k=34,l=hy33,z=device,n=WER-RTN' text FROM dual UNION SELECT 'n=WER-RTN,l=hy33,z=device,k=34' text FROM dual) SELECT REPLACE(REPLACE(REGEXP_SUBSTR(text,'(n=.+?,)|(n=.+?$)'),'n='),',') FROM t 值,可以使用类似这样的正则表达式提取该值:

REGEXP_SUBSTR (text, '(^|,)n=([^,]+)', 1, 1, '', 2)

如果你使用的是Oracle 11g或更高版本,你可以稍微简化一下:

error: Failed to start an Appium session, err was: Error: Requested a new session but one was in progress
> info: Client User-Agent string: Apache-HttpClient/4.3.2 (java 1.5)
> info: [debug] Error: Requested a new session but one was in progress