2016-10-22 107 views
1

嘗試創建一個SpamAssassin自定義規則,該規則與電子郵件正文中包含短語「SEO」四次或更多次時匹配。正則表達式匹配,如果至少包含N次單詞

爲什麼這樣的簡單模式不匹配?

/(SEO.*?){4,}/m

+0

非常第一場比賽可能已經消耗了所有可用的字符。 – usr2564301

+0

@RadLexus:不,它沒有,因爲懶惰的修飾符:「。*?」應該只匹配字符,直到下一個SEO。 –

回答

1

我想我明白了。 您不需要「m」修飾符,因爲您不使用^或$。 您需要「s」修飾符才能使用。匹配一個換行符。

你的正則表達式對於找到包含4次SEO的行是正確的,但對於每行包含2個SEO的2行不適用。 請參閱「替換操作調節器」在http://www.tutorialspoint.com/perl/perl_regular_expression.htm

/(SEO.*?){4,}/s 
+1

完美的作品。謝謝埃裏克。 – Mintaka

+1

@Mintaka,如果它回答你的問題,你應該接受這個答案(點擊勾號) – BrodieG

相關問題