【发布时间】:2013-11-18 00:55:16
【问题描述】:
我有一个 CSV 文件,其中每一行看起来像这样:
509,,SOME VALUE,0,1,1,0.23
我正在尝试查找所有两位或更多位数的数字 后面可能有也可能没有逗号 然后使用这个 Perl 代码将它们放入一个数组中:
my $file ='somefile.csv';
open my $DATA , "<", $file;
$_ = do {local $/; <$DATA>};
my @A = /,?(\d{2,}),?/g;
close $DATA;
正如预期的那样,它匹配上面行中的第一个逗号分隔值,但是
它也匹配最后一个值0.23 的23 部分。由于.,我希望这不匹配。
有人可以帮助我使我的正则表达式更具体,这样它就不会找到数字 是在月经之前还是之后?
【问题讨论】:
-
数字前的逗号是可选的。如果您想要逗号或字符串开头,请使用
(?:^|,) -
你应该阅读this。