Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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_Abap - Fatal编程技术网

Regex 用于匹配双引号和单引号外所有逗号的正则表达式

Regex 用于匹配双引号和单引号外所有逗号的正则表达式,regex,abap,Regex,Abap,我试图使用以下正则表达式匹配双引号(“)外的逗号 ,(?=(?:[^"]*"[^"]*")*[^"]*$) 对于单引号(')之外的逗号 我的目标是使用单正则表达式忽略双引号或单引号内的逗号 e、 g “mahe,ndra”,“Gulla”,40,“te,st”,23 你能告诉我,我怎么处理这件事吗 我将感谢你的帮助 Mahendra您可以使用此正则表达式: ,(?=(?:(?:[^"']*"[^"']*")|(?:[^'"]*'[^'"]*'))*[^"']*$) 例如,它将匹配单引号和双引

我试图使用以下正则表达式匹配双引号(“)外的逗号

,(?=(?:[^"]*"[^"]*")*[^"]*$)
对于单引号(')之外的逗号

我的目标是使用单正则表达式忽略双引号或单引号内的逗号

e、 g

“mahe,ndra”“Gulla”40“te,st”23

你能告诉我,我怎么处理这件事吗

我将感谢你的帮助


Mahendra

您可以使用此正则表达式:

,(?=(?:(?:[^"']*"[^"']*")|(?:[^'"]*'[^'"]*'))*[^"']*$)

例如,它将匹配单引号和双引号之外的逗号,但如果输入有奇数个引号,它将失败。

这里有一些替代方法

,(?=\s*(?:"[^"]*"|'[^']*'|\d+)(?:\s*,|\n))
我的方法强调验证这样的模式,如
,“[^”]*”,
,“[^']*”,
,\d+,
。这里的技巧是,如果匹配的起点是正确的,那么到行尾的其余匹配也将是正确的


请参见退房。嗨,vwegert,谢谢你的评论。我相信我的要求是不同的。我需要替换所有逗号,忽略单引号或双引号中的逗号。通过使用上述正则表达式,我将忽略单引号或双引号中的逗号,而不是同时忽略两个。请提供更多的大测试文本,可能是5-10行。Hi Koala,非常感谢,您的解决方案对meHi fronthem很有效,非常感谢您的帮助。你的解决方案对我也很有效
,(?=\s*(?:"[^"]*"|'[^']*'|\d+)(?:\s*,|\n))