gpt4 book ai didi

sql - 使用正则表达式 Oracle

转载 作者:行者123 更新时间:2023-12-04 21:03:26 25 4
gpt4 key购买 nike

我希望使用正则表达式来捕获字符串中的最后一个值。我复制了一个我要解析的数据示例。我正在使用 oracle 语法。

示例数据:

||CULTURE|D0799|D0799HTT|
||CULTURE|D0799|D0799HTT||

我希望去掉最后一组管道之前的最后一个值:

D0799HQTT 
D0799HQTT

我能够创建一个返回 CULTURE 的 regexp_substr:

REGEXP_SUBSTR(c.field_name, '|[^|]+|')

但我一直无法弄清楚如何从最后开始寻找一个或两个管道,并返回我正在寻找的值。如果您需要更多信息,请告诉我。

最佳答案

你可以试试这个:

select rtrim(regexp_substr('||CULTURE|D0799|D0799HTT||', 
'[[:alnum:]]+\|+$'), '|')
from dual;

或者像这样:

select regexp_replace('||CULTURE|D0799|D0799HTT||', 
'(^|.*\|)([[:alnum:]]+)\|+$', '\2')
from dual;

Here is a sqlfiddle demo

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com