相关疑难解决方法(0)

Perl Regex:如何从CSV行中删除引号内的引号

我有一个CSV文件中的一行"作为字段封面和,字段分隔符作为字符串.有时"数据中会破坏字段封闭程序.我正在寻找一个正则表达式来删除这些".

我的字符串看起来像这样:

my $csv = qq~"123456","024003","Stuff","","28" stuff with more stuff","2"," 1.99 ","",""~;
Run Code Online (Sandbox Code Playgroud)

我看过这个,但我不明白怎么告诉它只删除那些引号

  1. 不是在字符串的开头
  2. 不在字符串的末尾
  3. 之前没有 ,
  4. 没有跟着一个 ,

我设法告诉它使用这行代码同时删除3和4:

$csv =~ s/(?<!,)"(?!,)//g;
Run Code Online (Sandbox Code Playgroud)

但是,由于前瞻和后视两者都不喜欢被写成,因此我无法适应^并且$在那里(?<!(^|,)).

除了拆分字符串并从每个元素中删除引用之外,有没有办法实现这一目的只有正则表达式?

regex perl lookahead lookbehind double-quotes

3
推荐指数
1
解决办法
4015
查看次数

标签 统计

double-quotes ×1

lookahead ×1

lookbehind ×1

perl ×1

regex ×1