我试图使用以下正则表达式
匹配双引号(")外的逗号,(?=(?:[^"]*"[^"]*")*[^"]*$)
用于单引号(')外的逗号
,(?=(?:[^']*'[^']*')*[^']*$)
我的目的是使用单个正则表达式忽略双引号内或单引号内的逗号。
。
"马希,ndra " , "Gulla", 40 , "te、圣", 23
你能告诉我,我该如何处理这件事吗?
我将感激你的帮助Mahendra
这里有一些替代的解决方案
,(?=s*(?:"[^"]*"|'[^']*'|d+)(?:s*,|n))
我的方法强调验证像,"[^"]*",
, ,'[^']*',
或,d+,
这样的模式。这里的技巧是,如果匹配的起始点是正确的,那么直到该行末尾的其余匹配也将是正确的。
看到演示
你可以使用这个正则表达式:
,(?=(?:(?:[^"']*"[^"']*")|(?:[^'"]*'[^'"]*'))*[^"']*$)
它将匹配单引号和双引号外的逗号,如所提供的示例,但如果输入的引号数量为奇数,则会失败。