Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式在第二个逗号处拆分_Regex_Oracle_Plsql - Fatal编程技术网

Regex 正则表达式在第二个逗号处拆分

Regex 正则表达式在第二个逗号处拆分,regex,oracle,plsql,Regex,Oracle,Plsql,嗨,我需要用以下逻辑编写正则表达式: 除字符“\”在逗号之前外,每隔一秒拆分一次 也许可以举个例子来说明: 1,1a,2,2a,3,3a\,b,4,4a 应得到以下结果: 1,1a 2,2a 3,3a\,b 4,4a 这是我的以下代码: SELECT REGEXP_SUBSTR (text, '[^,]+,[^,]+', 1, LEVEL) TXT FROM DUAL CONNECT BY REGEXP_SUBSTR (text, '[^,]+,[^,]+', 1, LEVEL) IS NOT

嗨,我需要用以下逻辑编写正则表达式:

除字符“\”在逗号之前外,每隔一秒拆分一次

也许可以举个例子来说明:

1,1a,2,2a,3,3a\,b,4,4a
应得到以下结果:

1,1a

2,2a

3,3a\,b

4,4a

这是我的以下代码:

SELECT REGEXP_SUBSTR (text, '[^,]+,[^,]+', 1, LEVEL) TXT
FROM DUAL
CONNECT BY REGEXP_SUBSTR (text, '[^,]+,[^,]+', 1, LEVEL) IS NOT NULL;

所以我现在的正则表达式是:
'[^,]+,[^,]+'
,每秒钟用逗号分隔一次。

试试
(\\,[^,])+
而不是普通的
[^,]+

我刚刚运行了你的查询,我觉得很好。。有什么问题吗?为什么
3,3a\,b
使用3个逗号而不是2?Looks\是oracle中的转义字符。您需要将字符串更改为
1,1a、2,2a、3,3a\\、b、4,4a
@sagi,因为这也可能是类似“Test\、Test2”的文本。。因此,如果\是逗号前的字符,则应忽略此逗号。谢谢,非常好用!我的正则表达式现在是:
(\\,|[^,])+,(\\,|[^,])+
FYI-@ZerOne请确保始终使用逗号分隔集合,否则将得到不正确的结果。i、 如果你在两个1之间加一个逗号,结果将是错误的。这可能不是一个问题,这取决于数据在进入过程中的清理方式。只是让您知道一个可能的警告,因为通常用于解析列表的正则表达式格式
[^,]+
不会处理空元素。有关更多信息,请参阅。