我有一个文件,其条目为
33745 Neeraj Kumar 33743:许可证Web服务33743 WADL生成问题
我想以这样的方式使用正则表达式,它不应该匹配相同的id两次,即它可以匹配多个但不是相同的 在上述情况下,应将33745的计数称为1,将33743计为1
我当前的代码结果为33745为1和33743为2
foreach $line (@file_list) {
while ($line =~ m/(\d{4,}[,|:])/g ){
@temp = split(/[:|,]/, $1);
push @work_items, $temp[0];
}
}
my %count;
map { $count{$_}++ } @work_items;
答案 0 :(得分:0)
唯一匹配:否定前瞻中的反向引用
要检索所有唯一ID,这就足够了:
@result = $subject =~ m/(\d+)(?!.*\1)/g;
<强>解释强>
(\d+)
中的括号将ID识别为第1组(?!.*\1)
声称无法匹配任何字符,然后是第1组捕获的ID <强>参考强>