[英]perl regex help matching varying number values
Looking for some help with this perl regex. 寻找一些与此Perl正则表达式有关的帮助。
I need to extract (3) items from this filename: abc101.name.aue-abc_p002.20110124.csv 我需要从该文件名中提取(3)个项目: abc101.name.aue-abc_p002.20110124.csv
abc 101
.name. abc
101
.name。 aue
-abc_p 002
.20110124.csv aue
-abc_p 002
.20110124.csv
where item (3) in this example 002, can also be a max of 4 digits, 0002 其中示例(002)中的项目(3)也可以是最多4位数字0002
Here's my non working regex: 这是我无法正常使用的正则表达式:
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\\.([az]{3})-abc_p(\\d{1,4})\\.\\d+\\.csv$/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.