简体   繁体   English

perl regex帮助匹配不同的数值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM