Regular-Expression

帶有正則表達式的 procmail 配方不起作用

  • January 11, 2020

在我的~/.procmailrc我有以下幾行:

:0
\* ^Subject:.*(O|o)pen( \|)(S|s)(onic|urge)
$MAILDIR/OpenSurge/

如您所見,我想將任何包含“Open Surge”(或任何帶有空格或大寫字母的變體)的郵件放在 OpenSurge 文件夾中。但是包含這個詞的消息只進入了預設文件夾。

請注意,我有很多其他食譜,^From:foo當我嘗試^Subject:.*OpenSurge使用“OpenSurge”的食譜時,我不使用 regexp ^Subject:.*(O|o)pen( \|)(S|s)(onic|urge)

那麼,我怎樣才能用一個正則表達式來匹配所有寫“Open Surge”的可能性呢?

這個怎麼樣:

:0
* ^Subject:.*Open[ ]*Surge
OpenSurge

procmail 的預設設置是忽略大小寫。另請參閱D

匹配的消息儲存在文件 OpenSurge 中。它通常位於~/Mail/.

$$ Edit $$ 如果您還想匹配“Open sonic”,您可以使用@Bruce Ediger 的正則表達式,但還有其他方法:

添加另一個匹配規則

:0
* ^Subject:.*Open *sonic
OpenSurge

或者

:0
* ^Subject:.*Open *Surge | \
 ^Subject:.*Open *sonic
OpenSurge

或者

:0
* ^Subject:.*(Open *Surge|Open *sonic)
OpenSurge

等等。

您也不應該使用預設值.procmailrc,而是使用帶有類似註釋的預設

要檢查發生了什麼,請打開VERBOSE。日誌儲存在LOGFILE.

引用自:https://unix.stackexchange.com/questions/116953