gpt4 book ai didi

regex - 使用 regexp_substr 在逗号(不包括双引号)之间选择单词

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

我试图从逗号分隔的列表中返回字符串列表。但是,我仍然想在字符串中返回逗号,它们出现在双引号之间。

这是我目前的声明:

SELECT 
regexp_substr('one,two,"three, four five",six,"seven, eight, nine"',
'(.*?,){'||(n-1)||'}([^,]*)', 1, 1, '', 2) token
FROM (SELECT LEVEL n FROM dual CONNECT BY LEVEL <= 10);

这将返回:
one
two
"three
four five"
six
"seven
eight
nine"

但是我需要返回:
one
two
three, four, five
six
seven, eight, nine

我的正则表达式生锈了。有没有一种干净的方法来修改我的正则表达式来实现这一点?

谢谢!

最佳答案

试试这个:

'^("[^"]*",|[^",]*,){'||(n-1)||'}("[^"]*"|[^",]*)', 1, 1, '', 2

或更简单的版本:
'(^|,)("[^"]*"|[^",]*)', 1, n, '', 2

或者如果不需要引号 - 将其包装为:
regexp_replace( ..., '"', '')

关于regex - 使用 regexp_substr 在逗号(不包括双引号)之间选择单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19043169/

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