我正在尝试使用以下正则表达式
匹配双引号(")之外的逗号,(?=(?:[^"]*"[^"]*")*[^"]*$)
表示单引号外的逗号(')
,(?=(?:[^']*'[^']*')*[^']*$)
我的目标是在双引号内或使用单个正则表达式在单引号内忽略逗号。
e.g。
" mahe,ndra" ," Gulla" , 40 ,' te,st' , 23
请你告诉我,我该怎么处理呢。
我将非常感谢你的帮助
马亨德拉
答案 0 :(得分:2)
这里有一些替代解决方法
,(?=\s*(?:"[^"]*"|'[^']*'|\d+)(?:\s*,|\n))
我的方法强调验证,"[^"]*",
,,'[^']*',
或,\d+,
这样的模式。这里的诀窍是,如果匹配的起始点是正确的,那么匹配的其余部分直到行的结尾也是正确的。
答案 1 :(得分:1)
您可以使用此正则表达式:
,(?=(?:(?:[^"']*"[^"']*")|(?:[^'"]*'[^'"]*'))*[^"']*$)
它将匹配单引号和双引号之外的逗号作为提供示例,但如果输入具有奇数引号则会失败。