【问题标题】:How to support the searching file based on regular expression如何支持基于正则表达式的搜索文件
【发布时间】:2010-08-18 10:43:41
【问题描述】:

来自here

#!/usr/bin/perl
my @arr = ('/usr/test/test-[\d.*].*.con');

如何支持基于正则表达式的文件搜索

【问题讨论】:

  • 你能详细说明你的问题吗?
  • 字符类[\d.*] 匹配任何数字、点或星号。 test-之后你真的想匹配什么?

标签: regex perl


【解决方案1】:

如果我理解您的问题,这里有一种方法:使用glob 查找目录中的所有文件并使用grep 过滤它们。

my $dir = '/usr/test';
my @files = grep { /REGEX_HERE/ } glob("$dir/*");

【讨论】:

  • 我无法定义目录,因为我得到了完整的字符串。那么我该如何更改这部分
  • @Tree 对不起,我不明白你的问题。也许你可以澄清一下。
【解决方案2】:

您可以使用File::Find 来做这件事。

use File::Find;

my @files = ();
find( sub {/test-[\d.*].*.con/ && push @files, $File::Find::name}, '/usr/test' );

print foreach (@files);

【讨论】:

    猜你喜欢
    • 2015-02-16
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多