Proxy Server 允许您使用正则表达式标识资源。正则表达式指定字符串的模式。在 Proxy Server 中,正则表达式用于查找 URL 中匹配的模式。
以下示例说明了正则表达式:
[a-z]*://[^:/]*\.abc\.com.*
此正则表达式将匹配来自 .abc.com 域的任何文档。这些文档可以是任何协议,可以具有任何文件扩展名。
表 16–2 正则表达式及其含义
表达式 |
含义 |
---|---|
. |
匹配除换行符之外的任何单个字符。 |
x? |
匹配未出现或出现一次的正则表达式 x。 |
x* |
匹配未出现或出现多次的正则表达式 x。 |
x+ |
匹配出现一次或多次的正则表达式 x。 |
x{n,m} |
匹配字符 x,其中 x 至少出现 n 次但不超过 m 次。 |
x{n,} |
匹配字符 x,其中 x 出现至少 n 次。 |
x{n} |
匹配字符 x,其中 x 正好出现 n 次。 |
[abc] |
匹配括号中包含的任何字符。 |
[^abc] |
匹配括号中不包含的任何字符。 |
[a-z] |
匹配括号中范围内的任何字符。 |
x |
匹配字符 x,其中 x 不是特殊字符。 |
\x |
去除特殊字符 x 的含义。 |
"x" |
去除特殊字符 x 的含义。 |
xy |
匹配出现的正则表达式 x,且紧跟出现正则表达式 y。 |
x|y |
匹配正则表达式 x 或正则表达式 y。 |
^ |
匹配字符串的开头。 |
$ |
匹配字符串的结尾。 |
(x) |
将正则表达式分组。 |
以下示例说明了可以如何使用了解正则表达式中的一些正则表达式。
[a-z]*://([^.:/]*[:/]|.*\.local\.com).*
[a-z]* 匹配任何协议的文档。
:// 匹配 (:),且紧跟 (//)。
[^.:/]*[:/] 匹配不包括 (.)、(:)或 (/) 的任何字符串,且紧跟 (:) 或 (/)。因此,此表达式匹配非全限定的主机名和包括端口号的主机。
|.*\.local\.com 不匹配全限定主机名,如 local.com,但匹配 .local.com 域中的文档。
.* 匹配具有任何文件扩展名的文档。
如了解正则表达式中所述,反斜杠可用于转义或去除特殊字符的含义。字符(如句点和问号)具有特殊含义,因此,如果使用它们表示其本身,必须进行转义。特别是,许多 URL 中都可以发现句点。因此,要在正则表达式中去除句点的特殊含义,需要在其前面加上一个反斜杠。