我有 Roundcube Webmail v. 1.3.1 邮件客户端和 managesieve v. 8.7 扩展,想为我的邮件添加一些正则表达式驱动的操作,而我在正则表达式方面找到的唯一文档是这个文件。但是我找不到它支持哪些特殊字符,比如\n
(或者是\\n
?)\r
或\d
等等,以及如何编写它们。其中提到了通过[: :]
哪些字符组定义有效,但我宁愿使用\n
(这似乎不起作用)而不是更广泛的[:cntrl:]
或[:space:]
或诸如此类。
文档中写道它必须支持 POSIX ERE 标准,但是我熟悉不同类型的正则表达式(PERL 类型),所以我发现这相当困难。
您能帮忙找出其中支持哪些特殊字符和字符序列吗?哪些字符不是特殊的等等?
我想出了一个简单的正则表达式来匹配 YYYY/MM/DD 格式的日期,然后是空格,然后是 HH:MM:SS 格式的时间,然后是换行符,然后是邮件正文开头的任何内容,但它似乎不起作用。以下是 Sieve 代码:
require ["body","fileinto","regex","vacation"];
# rule:[date and time]
if anyof (body :text :regex "[[:digit:]]{2}/[[:digit:]]{2}/[[:digit:]]{4} [[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2}[[:space:]](.*[[:space:]]*)*")
{
vacation text:
YOU DID IT!
.
;
}
答案1
您链接到的 Sieve 文档指定它符合 POSIX 正则表达式语法,该语法记录在
http://pubs.opengroup.org/onlinepubs/9699919799/nframe.html
这将是最权威的参考。