在我的~/.procmailrc中,我有以下几行:
:0
\* ^Subject:.*(O|o)pen( \|)(S|s)(onic|urge)
$MAILDIR/OpenSurge/正如您所看到的,我希望将包含“OpenSurge”(或任何带有空格或大写字母的变体)的邮件放在OpenSurge文件夹中。但是,包含这个单词的消息只进入默认文件夹。
注意,我有很多关于^From:foo的其他菜谱,当我尝试^Subject:.*OpenSurge时,我的菜谱使用“OpenSurge”,但是我不使用regexp ^Subject:.*(O|o)pen( \|)(S|s)(onic|urge)。
那么,我怎样才能与正则表达式匹配所有写“开放浪潮”的可能性呢?
发布于 2014-02-26 00:45:37
这个怎么样:
:0
* ^Subject:.*Open[ ]*Surge
OpenSurgeprocmail的默认设置是忽略大小写。另见D。
匹配的消息存储在文件OpenSurge中。它通常位于~/Mail/。
编辑
如果您还想匹配"Open sonic",可以使用@Bruce Ediger中的regexp,但是还有其他方法:
添加另一个匹配规则
:0
* ^Subject:.*Open *sonic
OpenSurge或
:0
* ^Subject:.*Open *Surge | \
^Subject:.*Open *sonic
OpenSurge或
:0
* ^Subject:.*(Open *Surge|Open *sonic)
OpenSurge诸若此类。
您也不应该使用默认的.procmailrc,而应该使用带有注释的这 1。
来检查VERBOSE上发生了什么。日志存储在LOGFILE中。
发布于 2014-02-26 01:40:36
我认为你弄错了“打开”和“激增”之间的“零或多个空格”:
* ^Subject:.*(O|o)pen *(S|s)(onic|urge)我有‘*’(空格星号)之间的‘钢笔’和‘'(S’在regexp,以防万一stackexchange字体难以阅读。
发布于 2020-01-11 07:06:08
所有的正则表达式都是相等的,...but,有些比其他的更平等:-)
Procmail有自己的regex引擎(它不使用库中的regex引擎)和regex风格(它是_almost,与PCRE相同)。Procmail几乎一直都是case INsensitive (您可以使用D标志使它们区分大小写...sorta)。在大多数Procmail regex引擎中都有一些微妙的问题和bug:其中之一是为大小写编写(X\x),其中之一是正则表达式已经是大小写,INsensitive导致regex引擎有点头晕,不能正常工作。{无论如何,编写这样一个正则表达式的最佳/常规方法--假设它区分大小写,但它不在这里--是Xx而不是(X\x)。
https://unix.stackexchange.com/questions/116953
复制相似问题