我有这个字符串,我需要使用Oracle Regexp_substr
字符串就像
"123456","4,5,6","Hi This is "Sample" String",12345,022222
我需要将此字符串拆分为
"123456"
"4,5,6"
"Hi This is "Sample" String"
12345
022222
我尝试使用以下逻辑尝试使用",
作为分隔符,然后使用,
作为分隔符来提取字符串,当我使用REGEXP_(string,'".*",',1,1)
时它会将字符串转换为
"123456","4,5,6","Hi This is "Sample" String",
因为REGEXP是贪婪的表达。
我如何实现最终结果?
答案 0 :(得分:1)
好吧,您必须访问捕获组2才能获得第一个匹配(或者只是删除引号,如果它们存在):
(?:^("*)(.+?)\1(?=,))|(?:(?<=,").+?(?=",))|(?:(?<=,)[^"]+?(?=,|$))
答案 1 :(得分:1)
这个适用于您的示例:
(".+?"(?=,))|\w+