java - 正则表达式计算 CSV 中的逗号,但忽略引号内的逗号
问题描述
我目前使用这个正则表达式来计算一行文本中的逗号数:
^([^,]*,){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 个逗号,从而忽略任何内部引用的 "" 文本。无法理解它,所以有什么想法可以做到这一点吗?
为了提供上下文,这是为了正确解析来自邮件服务器的日志,并且使用我当前的设置,如果电子邮件的主题中有一个或多个逗号,它会破坏我的正则表达式检测......
注意。这不是一种语言,但背后的正则表达式引擎是基于 java 的。
不知道为什么标记为重复。链接的问题是基于代码的提取而不是计数。
解决方案
推荐阅读
- python - Matplotlib 的默认 GUI 后端是什么?
- javascript - 在Nodejs中将Buffer数据对象转换为数组
- c++ - reinterpret_cast 添加 const
- c - Linux 内核中的内存映射 - vamlloc() 和 kmalloc() 的使用
- android - 如何将 Samsung Galaxy Watch active 与我的 Android 应用程序连接?
- java - 在我输入问题的数量和难度后,它会停止运行
- angular - 如何使用量角器单击传单地图的中心
- java - 实体在实体管理器上调用合并后失去状态
- google-cloud-platform - 在谷歌云平台上传输文件.error
- reactjs - 如何在文件内的反应js中传递数据