正则表达式用于格式不正确的以管道分隔的csv文件

时间:2019-03-23 14:03:05

标签: java regex

我正在寻找一个正则表达式来标识在以竖线分隔的csv文件中出现的未转义的双引号字符。即该文件用竖线分隔,每个字段都用双引号引起来,但是某些字段包含单双引号字符,应使用额外的双引号对这些字符进行转义,以符合RFC4180。

  

“ Field1” |“ Field 2”“文本中的文本”“” |“是正确的”
“ Field1” |“” Field 2   “文字中的文字”“ |”不正确”

因为在第一行中,单个双引号已被另一个双引号字符正确地转义。

我正在寻找测试以查找错误转义的双引号

我可以找到不带[^|]\"的双引号 我会发现双引号后面没有\"[^|]
的管道 但这就是我被困住的地方

查找双引号,不要在管道AND之前,不要将管道AND在管道AND之前也不要将其放在双引号之后

1 个答案:

答案 0 :(得分:0)

此正则表达式应完成预期的工作

(?<!^|\[|"\])"(?!\[|"\]|$)

基本上,它会向后查找并搜索^(行首),|"以外的任何内容。

它将向前进行相同的操作,但是将检查行$的结尾而不是行的开头