【问题标题】:RegExp to match Quotes inside CSV field values正则表达式匹配 CSV 字段值中的引号
【发布时间】:2014-06-25 18:06:21
【问题描述】:

过去几天我一直在努力创建一个正则表达式,该表达式将匹配 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"。如果在最后一行,最后一个值包含引号,则不匹配。

有什么帮助吗?或者其他方式?

【问题讨论】:

    标签: javascript regex csv


    【解决方案1】:

    你可以使用这个正则表达式:

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

    你可以找到详细的解释here

    希望对您有所帮助。

    【讨论】:

    • 谢谢!它匹配内部包含引号的值。
    猜你喜欢
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 2020-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多