2017-03-29 10 views
0

'..'と 'Rollback'サブディレクトリは無視したいが、次のコードは動作しない。提案してください。Perlの正規表現: '..'と 'Rollback'サブディレクトリを無視する方法

if(-d $input) { 
    opendir (my $dh, $input) or die "Cannot opendir $input: $!"; 
    while (my $dir = readdir($dh)) { 
     my $path_dir = File::Spec->catfile($input, $dir); 
     next unless (-d $path_dir && $dir =~ m/^(?![\.{2}|Rollback])/); 
     print "dir=$dir\n"; 
    } 
} 

出力には1つのサブディレクトリのみが表示されますが、出力にはサブディレクトリと '。'が必要です。

+1

$ dir =〜/ ^(?:\。\。|ロールバック)/ x' ... (また、 '\ .'をスキップします) – zdim

+0

' -d $ dirや$ dir =〜/ ^(?:\。\。|ロールバック)| \。スキップするディレクトリの名前が "正確"であれば '/ ^(?:\。\。?|ロールバック)$ /;' – zdim

答えて

0

「非キャプチャ識別子」を使用する可能性が最も高いですか?: 次のコードを試してください。

関連する問題