在正则表达式中逃避这个词

时间:2014-03-10 14:06:19

标签: regex perl

我有一个像这样的字符串

 $str = '"filename","lf","$data","{ }",0';

如何从字符串中删除所有"? 我尝试使用这种正则表达式:

 $str =~ s/"(.+?)"//s;

它应匹配该字词并删除" - s

2 个答案:

答案 0 :(得分:6)

你可以这样做$string =~ s/\"//g;

答案 1 :(得分:1)

您的$str看起来想要处理CSV文件。萨达姆的答案当然适用于大多数情况,但是如果你真的使用.csv文件,那么我建议你使用像Text::CSV这样的实际解析器。这样,如果你的双引号valeus中嵌入了逗号,它们将被正确处理:

use Text::CSV;

use strict;
use warnings;

my $csv = Text::CSV->new();

my $str = '"filename","lf","$data","{ }",0';

$csv->parse($str);
my @columns = $csv->fields(); 

use Data::Dump;
dd \@columns;