假設我有一串字符串,例如@matches = ("cat", "zebra", "apple")
,我想打開一個文件並嘗試以最簡單的方式匹配這些字符串。如何使用正則表達式匹配來查找模式數組中的字符串?
while (<MYFILE>)
{
chomp;
if (..some match condition...)
{
..stuff..
}
}
我可以只使用一個foreach
在每一行要儘量配合,但我知道有一定是在Perl簡潔的方式說「如果串x匹配任何陣列Y.的模式」我似乎無法在任何地方找到它。
編輯:
爲了澄清,這裏是非常低效的代碼:
while (<MYFILE>)
{
chomp;
foreach $m (@matches)
{
if (~ /$m/)
{
..stuff..
}
}
}
我知道有這樣的一些快捷方法。
你是什麼意思與「匹配」? (a)「等於」,(b)「包含as substring」,或者(c)「用作正則表達式時匹配」?你願意使用非核心模塊嗎?這對於「任意」結 – amon
的使用情況很好,請參閱上面的編輯。 – CaptSaltyJack