繁体   English   中英

Perl正则表达式使用数组作为搜索项

[英]Perl regex using array as search items

我正在尝试搜索给定单词的文件并返回整行。

如果我专门定义以下单词,那么它可以完美地工作,但是我想使用可用于正则表达式的关键字数组,我将如何去做呢?

使用的关键字来自存储为

Hello
Cat
Dog

使用以下代码调用它们:

$words = '/computer/textfile';       
open(WORDS, $words);                
@wordarray =  <WORDS>;

这有效:

while($line = <FILE>) {   
    if($line =~ /Hello/) {
        print "$line\n";
    }
}

这不起作用:

while($line = <FILE>) {
    if($line =~ @wordarray) {
        print "$line\n";
    }
}
if($line =~ /foo|bar|baz/)

要么

my @kwarray = qw(foo bar baz);
my $keywords_re = join('|', map { quotemeta $_ } @kwarray);
...
if($line =~ /$keywords_re/o)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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