表达式

您可以使用 DOS 表达式和正则表达式,在属性表的文本输入字段内指定模式。作业属性表接受正则表达式,但是不接受 DOS 表达式。除 XRule 以外,大多数报告包属性表不接受正则表达式,但是会接受 DOS 表达式。在整个产品中使用了单一正则表达式引擎,它使用 Microsoft 的 .Net 2.0 语法。

一些接受正则表达式的作业属性表示例包括“排除内容”、“服务器和域”以及 XRule。

通过使用表达式,您可以在一条语句内定义一组符合特定要求的 URL。例如,您可以使用 DOS 表达式 *MyProduct*.htm 来指明您想要从报告包中排除特定产品的页面。

DOS 语法

* 代表任何字符或字符串,其中 *a* 会产生所有在名称中包含字符“a”的文件。

? 代表单个字符,其中 ??c 会产生每个以字符“c”结尾的且长度为三个字符的名称。

正则表达式语法

正则表达式必须以 regexp: 为前缀,以便扫描作业可以将其与纯文本条目区分。用于正则表达式的语法遵循 .Net 2.0 的语法。

下表描述了正则表达式支持的一些特殊字符和命令。您可以在 Microsoft 所提供的 .Net 2.0 正则表达式引擎文档中,找到更完整的受支持语法列表。

1. 有效的正则表达式语法和命令
语法 描述
^ 匹配字符串的开头。此语法假设在字符串中,^ 的前面没有字符。例如,假设有两个 URL:http://www.example.com/support/index.asp and http://support.example.com/index.asp?URL=http://www.example.com. 表达式 ^http://www\.example\.com 仅会匹配第一个 URL 而不是第二个。
$ 匹配字符串的结尾。
? P? - 可能有 P(零次或一次)。
* P* - 零次或多次重复 P。
+ P + - 一次或多次重复 P。
| P |Q - P 或 Q。
\ \X - 避免使用 ()?*+|\.[]^$ 其中一个字符,否则这些字符会被理解为特殊字符。
句点匹配任何单一字符。
[ ] 方括号中的字符范围,如 c[a-o]t;或者其中任一字符,如 c[aou]t。
( ) (ab|cd)?ef - 将一系列正则表达式组合在一起,在本例中会匹配 abef、cdef 和 ef。
- 如果要使用范围而不是字符本身来表示匹配的字符,则可以使用连字符(-)分隔范围中的起始字符和结束字符。每个字符的字符值决定其在范围内的相对顺序。
<operator1>&&

<operator2>

<operator1>and

<operator2>

逻辑 AND。
<operator1>||<operator2>

<operator1>or

<operator2>

逻辑 OR。
!<operator1>not

<operator2>

逻辑 NOT。它需要适当的操作数。如果运算符左边有表达式,那么其前面必须是二目运算符。例如,“A and not b”正确,但是“A not b”不正确。
“<字符串>” 文字串。可以将包含命令的操作数置于双引号分隔的字符串内。例如“(Hello and Goodbye)”。请在文字串内的双引号前面使用反斜杠。

正则表达式示例

.* 任意一串字符

.*\. 任意字符序列,后面跟有 .(一个句点)

注: 对于匹配的正则表达式使用 .*?{1,x} 或 w+ 围绕匹配项捕获文本请特别小心。这将大幅增加扫描时间,因为这些表达式会测试文档中的每个字符,以查看其是否为整个表达式的匹配项。

在排除内容中: regexp:.*\.watch.*fire.* 会排除 http://www.watchoutforfiresinforest.comhttp://www.watch.com/products/firestone/index.asp