筛选:筛选主题与正则expression式,文件到名为匹配的邮箱

我正在尝试按正则expression式过滤邮件。

我想要匹配的主题读取像[git-foo] some more text ,其中foo是我想检查的string。

我结束了以下

 require ["fileinto", "variables", "regex"]; if header :regex "subject" "^\[git-.*\]" { set :lower :upperfirst "repository" "${1}"; if string :is "${repository}" "" { fileinto "Test/default"; } else { fileinto "Test/${repository}"; } } 

replace第一个if语句if header :matches "subject" "[git-*" { files mail into Test/Foo] some more text但是当纠正"[git-*""[git-*]" ,不匹配。

正则expression式适用于grep -e

如何将文件正确地存入Test/Foo

这个正则expression式的工作原理吗?

'[GIT中 – (。*)]'

你需要转义两次,这样\[git-.*\]变成\\[git-.*\\]

你需要结合两个捕获组和双反斜线。 在前面的答案中都提到过,但是分开。

 if header :regex "subject" "^\\[git-(.*)\\]" { set :lower :upperfirst "repository" "${1}"; // ... } 

说明:

  • 不像:匹配:正则expression式只为捕获组设置匹配variables($ 1等)。 :匹配为每个通配符设置它们。

  • :正则expression式确实需要转义[] ,但有一个双反斜杠。

可能现在有点晚了,但是我发现我不得不用点指定文件夹而不是斜线:例如。 'fileinto“Test.default”'。