perl正则表达式帮助匹配不同的数字值
问题描述:
寻找这个perl正则表达式的帮助。perl正则表达式帮助匹配不同的数字值
我需要提取(3)从这个文件名的项目:abc101.name.aue-abc_p002.20110124.csv
ABC 101
。名称。 aue
-abc_p 002
.20110124.csv
其中项目(3)在本例中002,也可以是4位的最高0002
这是我工作的非正则表达式:
while (my $line=<>) {
chomp $line;
if ($line =~ m/abc(d{3}).name.(w{3})_p([0-9]).[0-9].csv/) {
print $1;
print $2;
print $3;
}
}
答
while (my $line=<>) {
chomp $line;
if ($line =~ /^abc(\d{3})\.name\.(\w{3})-abc_p(\d{1,4})\.\d+.csv$/) {
print $1;
print $2;
print $3;
}
}
答
你缺少了几个加号(或{}量词)和转义点: abc(d{3})\.name\.(w{3})_p([0-9]{3,4})\.[0-9]+\.csv/
答
未经测试:/^abc(\d{3})\.name\.([a-z]{3})-abc_p(\d{1,4})\.\d+\.csv$/
你的意思是最后一个点是文字吗? – sln 2011-02-19 16:46:18