2

有这样一行:(想要的 CSV 中的一行示例)

""",100,""a"sa",""," "","" ","a"z","a"",""z","""",""",200,"a"a",""

我想要一个匹配所有不包含字符串的引号的正则表达式"......(在稍后阶段删除它们并构建一个 100% 兼容的 CSV)

我想出了这个部分解决方案:(?<!,)"(?!,)使用负后瞻和前瞻来匹配不封闭"

它几乎成功了,但是每行的第一个字符和最后一个字符"都与正则表达式匹配。

示例:https ://regexr.com/41kve

我想要一个解决这个问题的正则表达式,所以第一个和最后一个字符不是匹配正则表达式的一部分

一些想法怎么做?

4

1 回答 1

2

您可以使用

(?<!,|^)"(?!\s*(?:,|$))

查看正则表达式演示

细节

  • (?<!,|^)- 当前位置左侧没有字符串或逗号的开头
  • "- 双引号
  • (?!\s*(?:,|$)),-当前位置右侧紧接在前面有 0+ 个空格的无或字符串结尾。
于 2018-10-22T07:43:13.847 回答