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))