正则表达式以CSV计数逗号,但忽略引号内的逗号

时间:2018-06-25 20:14:49

标签: java regex

我目前使用此正则表达式计算一行文本中的逗号数:

^([^,]*,){9}[^,]*$

以下是来自测试服务器的示例消息:

2018-06-25T19:44:31.187Z,MAIL\Outbound Proxy Frontend MAIL,08D5D14527D3D0F3,1,192.168.20.1:717,192.168.20.23:28050,>,"220 MAIL.potato.ca Microsoft ESMTP MAIL Service ready at Mon, 25 Jun 2018 15:44:30 -0400",

现在这有效,但它还会计算引号内的逗号(在结尾处)。 我需要使用它来检测8个逗号,从而忽略任何用引号引起来的“”文本。我无法解决这个问题,所以有什么想法可以做到这一点?

为了提供上下文,这是为了正确解析邮件服务器中的日志,并使用我当前的设置来解析电子邮件,如果该主题中包含一个或多个逗号,则会中断我的正则表达式检测...

NB。这不是语言,但是后面的正则表达式引擎基于Java。

不确定为什么将其标记为重复项。链接的问题是基于代码的提取而不是计数。

0 个答案:

没有答案