哪些特殊字符在筛选正则表达式中起作用?

哪些特殊字符在筛选正则表达式中起作用?

我有 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

这将是最权威的参考。

相关内容