Joe*_*jam 3 java regex csv perl preg-replace
我有来自Exchange服务器的这个日志
2010-05-20T01:53:33.097Z,12.10.53.144,,12.10.53.200,EXHUB-10,08CCC3F50C35F2D2; 2010-05-20T01:53:32.128Z; 0,EXHUB-10 \默认EXHUB-10,SMTP, RECEIVE,829888 ,, norma @ ccc.gov.my ,, 521647,1 ,,,"NEAC分工作组会议 - 劳动力升级技能和加强职业技术培训 - 2010年5月24日星期一下午2:30 ",lee.cheesung @ gmail.com,<>,00A:
我使用这个正则表达式来匹配和分组模式;
?(\ d {4} - \d {2} - \d {2})(?:[\ W\S] +)(\ d +:\ d +:\ d +\d +)(:[\ W +\d.]*),(.*?),(.*?),(.*?),(.*?),(.*?),(.*?),(.*?),(. ????*),(*),(*),(*),([ '"].*['"] |.?.*),(*),(*)?? (?*),(?*),(.*?),(?*),(.*?),(?:(\ d {4} - \d {2} - \d { 2}\W\d {2}:\ d {2}:\ d {2}\d +)(:?\ W +)*)*(*)
基本上,日志中的信息由逗号分隔.不幸的是,对于"电子邮件主题"字段,如果用户输入逗号,日志将以双引号显示,例如上面的示例 - 日期格式的逗号"Monday May 24, 2010"
..... 521647,1 ,,,"NEAC分工作组会议 - 提升劳动力技能并加强职业技术培训 - 2010年5月24日星期一下午2:30",lee.keesung @ gmail.com ,.....
如何在没有特定组中的双引号的情况下将逗号与逗号一起抓取(第19组)
你提到:
基本上,日志中的信息用逗号分隔...如果逗号是字段的一部分,则字段将被双引号.
这使它成为一个CSV文件.解析CSV文件是一个已解决的问题,您无需重新发明轮子.使用语言库提供的CSV解析器.
如果您使用的是Perl,请查看Text :: CSV模块.
| 归档时间: |
|
| 查看次数: |
1088 次 |
| 最近记录: |