Regex perl-收集信息并仅从收集的数据中选择一些信息

Regex perl-收集信息并仅从收集的数据中选择一些信息,regex,perl,Regex,Perl,我正在从一个目录中收集信息。之后,我只过滤我想要的数据。这是我的密码: sub info { my @files = `ls -l $path_to_dir`; chomp @files; } 该数组包含以下所有信息:@files=(“D1”、“K1”、“ABC”、“FD_HTML”) 现在,我只需要$path_to_dir中的文件名,以D1、K1、D0、K0、A0等开头。请您建议如何从存储在数组“@files”中的$path_to_dir收集

我正在从一个目录中收集信息。之后,我只过滤我想要的数据。这是我的密码:

sub info { 
  my @files = `ls -l $path_to_dir`;                
  chomp @files;    
}
该数组包含以下所有信息:
@files=(“D1”、“K1”、“ABC”、“FD_HTML”)


现在,我只需要$path_to_dir中的文件名,以D1、K1、D0、K0、A0等开头。请您建议如何从存储在数组“@files”中的$path_to_dir收集的信息中筛选D0、D1、K0、A0等数据。现在,从这个数组中,我只想将像D0,K0,K1,A0这样的数据存储在不同的数组中。如何做到这一点?

使用Perl opendir方法,而不是shell命令。这既更安全,又使代码更便于移植。看看这一页的例子


请特别注意“查找以…结尾的文件”部分,以获取有关如何处理与正则表达式匹配的特定文件的示例。

您需要使用“代码”选项重新格式化代码,因为基于您的其他问题,您从未接受过或提供过类似的反馈,您似乎已被告知
grep
。此外,您的代码将无法运行
my@files=ls-l$path_to_dir
似乎是某种perl伪代码。请编辑您的问题以包含您尝试运行的代码。您刚刚回答了自己的问题。使用grep。我的@new_files=grep(/^[A-Z][0-9]$/,@files);perldoc-f grepp在期待更多帮助之前,请先回答前面的一些问题。当Perl有很多很好的选项来获取和处理文件信息时,您不应该使用shell命令并解析来自
ls
的输出。