使用正则表达式来分割CSV文件中的split()值
||
我有一个要解析的CSV文件。
我正在使用split()按逗号分隔列。
问题在于它正在拆分字段中包含逗号的列。
解决方案是在split中使用正则表达式来忽略逗号后跟空格(例如:EG:\“,\”),而仅在逗号后没有尾部空格(例如:EG:\“,\”)。
现在我的拆分看起来像这样:
$div = \',\';
split(\'$div\',$line);
我将如何修改split()调用?
没有找到相关结果
已邀请:
4 个回复
古擅坛犯
但是,如果您的文件格式确实不一致,那么您确实需要手动拆分方法和更具体的正则表达式。
将是您可以用来匹配不带空格的逗号的正则表达式。请注意,您需要使用PCRE库中的
,而不是较早的
调用。
马口
如果不是,那么模棱两可就是您的第一个问题:
有五个字段,对此您无能为力1。 整理好源数据后,使用ѭ7进行解析。 1如果确实如此: 解决方案是在split中使用正则表达式来忽略逗号后跟空格(例如:EG:\“,\”),而仅在逗号后没有尾部空格(例如:EG:\“,\”)。 如果您所有的“内部”逗号后面都有空格,那么您可以运行一个预处理步骤,用all9替换所有
。在CSV中转义逗号可以解决歧义:
辟官陡板休
旅牢斯讲