我正在嘗試開發一個相當快速的全文搜索。它將讀取索引,並且理想情況下應該只在一個正則表達式中運行匹配。Perl正則表達式包含多個單詞的匹配行
因此,我需要一個匹配行的正則表達式,只有當某些單詞被包含時才匹配行。
E.g. for
my $txt="one two three four five\n".
"two three four\n".
"this is just a one two three test\n";
只有第一行和第三行應該匹配,因爲第二行不包含單詞「one」。
現在我可以通過每一行()或使用多個正則表達式,但我需要我的解決方案是快速的。
從這裏的例子: http://www.regular-expressions.info/completelines.html (「查找包含行或不包含某些詞」)
正是我需要的。但是,我無法在Perl中使用它。我嘗試了很多,但它沒有得出任何結果。
my $txt="one two three four five\ntwo three four\nthis is just a one two three test\n";
my @matches=($txt=~/^(?=.*?\bone\b)(?=.*?\btwo\b)(?=.*?\bthree\b).*$/gi);
print join("\n",@matches);
不給出結果。
總結: 我需要一個正則表達式來匹配包含多個單詞的行,並返回這些整行。
在此先感謝您的幫助!我嘗試了這麼多,但只是沒有得到它的工作。
但這不是想要的...... – ysth 2011-01-21 09:25:41
啊,你說得對。我沒有仔細閱讀這個問題。 – 2011-01-21 09:26:32