不包含括号的字符串的正则表达式
Regular expression for strings not containing brackets
我正在尝试编辑我的 .procmailrc 文件以清除垃圾。
这个账号是我学校CS系的,系里所有的邮件都有带括号的主题,比如:
[Majors] Some Subject
或:
[Undergrads] Another Subject
我收到很多未被过滤器捕获的垃圾邮件,但几乎所有垃圾邮件都不包含括号。我想将这些电子邮件移到垃圾邮件文件夹中,但无法计算出正则表达式。有没有正则表达式大师可以提供帮助?
您可以按特定顺序设置 .procmailrc
以帮助完成您想要的。 procmail
读取 procmailrc
并在第一个匹配的食谱处停止。因此,你可以在文件的开头做你所有的常规处理,最后在末尾添加类似下面的内容。
此示例测试主题是否存在 [
并保留这些消息。任何与任何其他食谱不匹配且主题中不包含 [
的邮件都将移至 spam-probably
(该示例使用 good
文件夹保存邮件,spam-probably
将不匹配的邮件移动到的文件夹 -- 调整名称以适合您的设置)
:0: # keep mail with [ in 'good' folder
* ^Subject:.*\[
good
:0: # move unmatched to 'spam-probably' folder
spam-probably
注意: 由于在 spam-probably
配方中没有条件行,procmail 会将所有以前没有匹配配方的邮件移动到 spam-probably
文件夹。您可以从字面上选择数十种 regexs
来完成 [
上的主题匹配,具体取决于您想要匹配的紧密程度或松散程度。查看将完成您需要的正则表达式并根据需要进行替换。
Subject:
headers 的简单 Procmail 配方不包含左方括号
:0 # Add a second colon if the spam box is an mbox folder
* ^Subject:[^[]*$
spam
这只是检查左方括号,而忽略了您可能会收到仅包含右方括号的合法邮件的可能性(我认为它本身就是垃圾邮件)。
...但是为了完整起见,我会提到如果你想要一个右方括号,那是一种特殊情况,需要在字符 class 中进行特定排序(就像破折号需要去第一个或最后一个字符范围来消除歧义)。这种类型的常见字符 class 是 [^][]
,它是一个包含右方括号和左方括号的否定字符 class。他们需要完全按照这个顺序才能工作;在任何其他位置,右方括号将关闭字符 class。 (你也不能 backslash-escape 它在那里;字符中的反斜杠 classes 是文字。)
我正在尝试编辑我的 .procmailrc 文件以清除垃圾。
这个账号是我学校CS系的,系里所有的邮件都有带括号的主题,比如:
[Majors] Some Subject
或:
[Undergrads] Another Subject
我收到很多未被过滤器捕获的垃圾邮件,但几乎所有垃圾邮件都不包含括号。我想将这些电子邮件移到垃圾邮件文件夹中,但无法计算出正则表达式。有没有正则表达式大师可以提供帮助?
您可以按特定顺序设置 .procmailrc
以帮助完成您想要的。 procmail
读取 procmailrc
并在第一个匹配的食谱处停止。因此,你可以在文件的开头做你所有的常规处理,最后在末尾添加类似下面的内容。
此示例测试主题是否存在 [
并保留这些消息。任何与任何其他食谱不匹配且主题中不包含 [
的邮件都将移至 spam-probably
(该示例使用 good
文件夹保存邮件,spam-probably
将不匹配的邮件移动到的文件夹 -- 调整名称以适合您的设置)
:0: # keep mail with [ in 'good' folder
* ^Subject:.*\[
good
:0: # move unmatched to 'spam-probably' folder
spam-probably
注意: 由于在 spam-probably
配方中没有条件行,procmail 会将所有以前没有匹配配方的邮件移动到 spam-probably
文件夹。您可以从字面上选择数十种 regexs
来完成 [
上的主题匹配,具体取决于您想要匹配的紧密程度或松散程度。查看将完成您需要的正则表达式并根据需要进行替换。
Subject:
headers 的简单 Procmail 配方不包含左方括号
:0 # Add a second colon if the spam box is an mbox folder
* ^Subject:[^[]*$
spam
这只是检查左方括号,而忽略了您可能会收到仅包含右方括号的合法邮件的可能性(我认为它本身就是垃圾邮件)。
...但是为了完整起见,我会提到如果你想要一个右方括号,那是一种特殊情况,需要在字符 class 中进行特定排序(就像破折号需要去第一个或最后一个字符范围来消除歧义)。这种类型的常见字符 class 是 [^][]
,它是一个包含右方括号和左方括号的否定字符 class。他们需要完全按照这个顺序才能工作;在任何其他位置,右方括号将关闭字符 class。 (你也不能 backslash-escape 它在那里;字符中的反斜杠 classes 是文字。)