我正在尝试按正则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”'。