Gmail 搜索(Search)和过滤器(Filter)的逻辑运算(Boolean operators)
为何要用逻辑运算(Boolean operators)
- 如果想要把发往foo@bar1.com或foo@bar2.com,主题里面包含”任务”打上“task”的标签而不是foo@bar1.com或foo@bar2.com的标签,这该怎么办呢?
- 如果想要把和同学a(a@bar.com)以及同学b(b@bar.com)讨论makefile相关问题的邮件全都找出来,那又该怎么办呢?
这时逻辑运算就有了用武之地。
Search和Filter的表达式位置
如果要制作条件比较复杂的Filter或者对邮件进行更为精确的搜索,那么就要书写复杂一点的高级逻辑表达式。表达式对Filter和Search都是通用的,只是写的位置不同:
- Search的表达式要写在Search Mail的编辑框内
- Filter的表达式要写在Has the words后面的编辑框内
逻辑运算符(Boolean operators)
Gmail官方有相关的帮助还有一张逻辑运算符的表格,这将是我们写运算表达式的重要依据。表格很详细的列举了所有可以使用的运算符和用法以及例子。这里只着重介绍几个重要而常用的。
- 空格:用空格隔开表示与的关系
- OR:用OR隔开表示或关系
- - :用 - 做为前缀表示非
- is:chat:搜索范围为聊天记录
- ():它的作用就不言而喻了
- ……
例子(Example)
回到开头提到的问题,很容易就写下他们的答案了。对于过滤器的要求需要写三个表达式。
- 标签task对应表达式Filter1:“(to:foo@bar1.com OR to:foo@bar2.com) subject:任务”
- 标签foo@bar1.com对应表达式Filter2:“(to:foo@bar1.com) -subject:任务”
- 标签foo@bar2.com对应表达式Filter3:“(to:foo@bar2.com) -subject:任务”
第二个表达式是为了避免同时打上task和foo@bar1.com的情况。
对于第二个问题,只需要使用下面的表达式
- (from:a@bar.com OR to:a@bar.com OR cc:a@bar.com bcc:a@bar.com) (from:b@bar.com OR to:b@bar.com OR cc:b@bar.com bcc:b@bar.com) subject:makefile
为了搜索更为准确,你还可以用这些运算符组成更为复杂的表达式。
后话
Gmail 提供的逻辑运算已经很强大了,不过我觉得 Filter 有点疏漏,缺少了一般的过滤器都有的两点功能:1、能够为过滤器进行排序;2、如果以及符合一个过滤器可以选择不再继续查找其他过滤器。如果有这两点功能的话,我们的Filter2和Filter3就不用那么麻烦了。
10
12月