如何在正则表达式中使用数组中的关键字来搜索文件。
我正在尝试查看文本文件并查看关键字是否出现以及出现在何处。有两个文件keywords.txt
keyword.txt
word1
word2
word3
filestosearchon.txt
a lot of words that go on and one and contain linebreaks and linebreaks (up to 100000 characters)
我想找到匹配的关键字和位置。这适用于一个词,但我无法弄清楚如何在正则表达式上迭代关键字。
#!/usr/bin/perl
# open profanity list
open(FILE, "keywords.txt") or die("Unable to open file");
@keywords = <FILE>;
close(FILE);
# open text file
local $/=undef;
open(txt, "filetosearchon.txt") or die("Unable to open file");
$txt = <txt>;
$regex = "keyword";
push @section,[length($`),length($&),$1]
while ($txt =~ m/$regex/g);
foreach $element(@section)
{
print (join(", ",@$element), $regex, "\n");
}
如何在这个while循环上迭代数组中的关键字以获得匹配的关键字和位置?
感谢任何帮助。谢谢