RegEx匹配CSV字段值中的引号

时间:2014-05-08 11:16:59

标签: javascript regex csv

我在最后几天一直在努力创建一个与CSV文件字符串的字段值中的引号(如果有的话)匹配的正则表达式。

我想只匹配引号或至少匹配整个字段值。例如:"""a "test"在CSV字符串中,如下所示:

"ID","iManufacturer","iMPartNumber","iSerialNumber","iSimCategory"
"1","""","230-132-111AA"," " ","a "test""

原因是如果它们出现在值内,则转义引号,以便正确解析CSV文件。

在JavaScript中没有 lookbehinds ,我发现很难找到解决方案。到目前为止,我已经想出了这个:

(?:[^,\r\n\t\f]*)["]+(?:[^,\r\n\t\f]*)["]+(?:[^,\r\n\t\f]*)(?=",|"\s|"\S)

它几乎匹配我需要的字符串(它也匹配值引用的开头):"""" ""a "test"。如果在最后一行,则最后一个值包含引号。

有任何帮助吗?或者也许是其他方式呢?

1 个答案:

答案 0 :(得分:0)

您可以使用此正则表达式:

"((?:[^,"\n]*?"[^,"\n]*?)+)"

您可以找到详细解释here

希望有所帮助。