属性名 | 文本类型 | 网址类型 | 请求类型 | 响应类型 | 说明 |
name | √ | √ | √ | √ | 过滤规则名称 |
type | √ | √ | √ | √ | 规则所属类型, 可用值如下: text - 文本类型 url - 网址类型 requestheader - 请求类型 responseheader - 响应类型 |
action | √ | √ | √ | √ | 处理方式, 见 action 属性取值说明 |
postaction | √ | √ | √ | √ | 后期处理方式, 见 postaction 属性取值说明 |
priority | √ | √ | √ | √ | 该规则的优先级, 大于零的整数(0~999), 数值越大优先级越高 |
enable | $ | $ | $ | $ | 该规则是否启用. 可取值: 1 (启用), 0 (禁用). 缺省值为 0. |
header | × | × | √ | √ | 要匹配的 HTTP Header 名称 |
match_url | $ | √ | $ | $ | 网址匹配字符串 (支持正则表达式) |
exclude_url | $ | $ | $ | $ | 网址例外字符串, 匹配该串的网址不过滤 (支持正则表达式) |
bound | $ | × | × | × | 限定 match 属性匹配范围的预匹配规则 (支持正则表达式) |
max_bound_size | $ | × | × | × | 最大的匹配范围(最大值 2048 字节). 缺省值为最大值. |
match_count | √ | × | × | × | 每个页面的匹配次数限制, 正整数. |
match | √ | × | √ | √ | 匹配字符串 (支持正则表达式) |
exclude | $ | × | $ | $ | 例外字符串, 符合该串的不过滤 (支持正则表达式) |
replace | √ | $ | $ | $ | 用于替换的字符串 (支持正则表达式的替换标记) |
return | × | $ | $ | $ | 返回给浏览器的内容 |
取值 | 文本类型 | 网址类型 | 请求类型 | 响应类型 | 说明 |
0 | √ | √ | √ | √ | 无操作, 默认值 |
1 | × | × | √ | √ | 删除匹配的 HTTP Header |
2 | × | × | √ | √ | 添加一个 HTTP Header, 使用 header 属性的值作新 Header 名称和 replace 属性的值作为值 |
3 | √ | √ | √ | √ | 用 replace 的内容替换 match 或 match_url 所匹配的字符串 同样适用文件头和文件尾匹配宏函数 $FILESTART() 和 $FILEEND() |
取值 | 文本类型 | 网址类型 | 请求类型 | 响应类型 | 说明 |
0 | √ | √ | √ | √ | 无操作, 默认值 |
1 | √ | √ | √ | √ | 不再处理同类型的其它规则 |
2 | × | √ | √ | √ | 关闭当前连接 |
3 | × | √ | √ | √ | 返回 return 属性的内容, 关闭当前连接 |
宏函数 | 说明 |
$FILESTART() | 用于匹配文件头, 仅用于文本类型的过滤规则的 match 属性中 |
$FILEEND() | 用于匹配文件尾, 仅用于文本类型的过滤规则的 match 属性中 |
$KEYWORDS(keywordListName) | 将内容替换为括号内指定的关键字列表内容. keywordListName 为该关键字列表的名称 ( blacklist 和 whitelist 是系统保留的名称, 自定义过滤规则可以通过这两个名称使用全局的黑白名单, 如果规则中重用了这些名称, 则使用规则自定义的关键字列表) |
$BASE64(string) | 返回 Base64 解码后的 string 的内容 |
$STR(string) | 用来表示前后带双引号(")或单引号(')或无引号的字符串 string. 一般用于匹配 HTML 标记的属性值. |
$FILECONTENT(filePath) | 读取并返回 filePath 所指定位置的文件内容. 仅用于 replace 和 return 属性中. |
$TAG(tagName) | 匹配 HTML 标记(<tagName attr=”#”>...</tagName> 以及无关闭标记的 <tagName attr=”#”>). 仅用于 bound 属性. |
模式 | 说明 |
. | 匹配除换行符(\n)之外的任何单个字符. 要匹配包括 '\n' 在内的任何字符, 可以使用 [.\n] 模式. |
\ | 转义字符, 用于转义紧跟的字符. 详情请参考 转义字符表. |
[...] | 定义一个字符类, 匹配方括号内的任意一个字符. 例: [abc] 可以匹配单个字符 a, b 或 c. |
[^...] | 定义一个非匹配字符类的开始处, 它表示否定该字符类, 即匹配不在方括号中出现的任何字符. 例: [^abc] 可以匹配 e, 7, z 等除 a, b 和 c 之外的字符. |
^ | 如果 ^ 出现在正则表达式最前边, 它匹配输入字符串的开头. 例: ^[abc] 匹配输入字符串开头的 a, b 或 c , 如 about us, be it, can you?. |
$ | 放在正则表达式的最后, 匹配输入字符串的末端. 例: [0-9]$ 匹配输入字符串末端的一个数字字符, 如 last 9, add 1. |
| | "或"分隔符, 分隔多个表达式, 只须匹配其中一个. 例: th(is|at|ese|ose) 可以匹配 this, that, these 或 those. |
- | 在字符类中, 指定一个字符范围. 例: [0-9] 匹配 0 到 9 的数字. |
? | 匹配前面的子表达式零次或一次. ? 等价于 {0,1} . 例: do(es)? 可以匹配 do 或 does. |
+ | 匹配前面的子表达式一次或多次. + 等价于 {1,} . 例: zo+ 能匹配 zo 以及 zoo 或者 zoooo, 但不能匹配 z . |
* | 匹配前面的子表达式零次或多次. * 等价于 {0,} . 例: zo* 能匹配 z 以及 zoo . |
{n} | 匹配前面的子表达式确定的 n 次. n 是一个非负整数. 例: o{2} 不能匹配 Bob 中的 o , 但是能匹配 food 中的 oo . |
{n,} | 匹配前面的子表达式至少 n 次. n 是一个非负整数. e{1,} 等价于 e+ , e{0,} 则等价于 e* . 例: e{2,} 不能匹配 Bed 中的 e , 但是能匹配 feel 和 feeeeel 中所有的 e . |
{n,m} | 匹配前面的子表达式最少 n 次且最多 m 次. n<=m, m 和 n 均为非负整数. 在逗号和两个数字之间不能有空格. o{0,1} 等价于 o? . 例: o{1,3} 可以匹配 fooooood 中的前三个 o . |
?? +? *? {n}? {n,}? {n,m}? | ?, +, *, {n}, {n,}, {n,m} 的非贪婪匹配版本, 非贪婪匹配在匹配时会尽可能匹配较少的字符. 例: 输入字符串为 <abc><def> 使用非贪婪匹配 <.*?> 会匹配 <abc> . 使用贪婪匹配 <.*> 会匹配整个 <abc><def> . |
(pattern) | 表达式分组操作符. 用于分隔子表达式和返回部分匹配结果. 返回的结果可以在替换操作的时候用 $1 - $10 表示. 例: (\d+,)*\d+ 可以匹配逗号分隔的数字字符串, 如 41 或 1,23,456 . |
(?:pattern) | 非获取匹配分组, 匹配 pattern 但不返回匹配结果, 这样可以节省资源, 也不容易与获取匹配的结果混淆. |
(?=pattern) | 肯定正查(Positive Lookahead). 作用类似 $, 匹配任何后缀有符合 pattern 字符串的之前的位置, 这是一个非获取匹配. 例: Windows (?=95|98|NT|2000) 匹配 Windows 2000 中的 Windows, 而不匹配 Windows 3.1 中的 Windows. 最终返回的是 Windows 而不包含 pattern 匹配的 2000 部分. |
(?<=pattern) | 肯定反查(Positive Lookbehind). 作用类似 ^, 匹配任何前缀有符合 pattern 的字符串之后的位置, 这是一个非获取匹配. 例: (?<=Windows|MacOS|Linux|Unix) Now 匹配 Windows Now 中的 Now, 而不匹配 PalmOS Now 中的 Now. 最终返回的是 Now 而不包含 pattern 匹配的 Windows 部分. |
(?!pattern) | 否定正查(Negative Lookahead). 作用类似否定的 $, 匹配任何后缀不符合 pattern 字符串的之前的位置, 这是一个非获取匹配. 例: Windows(?!95|98|NT|2000) 匹配 Windows 3.1 中的 Windows, 但不匹配 Windows 2000 中的 Windows. 最终返回的是 Windows 而不包含 pattern 匹配的 3.1 部分. |
(?<!pattern) | 否定反查(Negative Lookbehind). 作用类似否定的 ^, 匹配任何前缀不符合 pattern 的字符串之后的位置, 这是一个非获取匹配. 例: (?<!Windows|MacOS|Linux|Unix) Now 匹配 PalmOS Now 中的 Now, 而不匹配 Windows Now 中的 Now. 最终返回的是 Now 而不包含 pattern 匹配的 PalmOS 部分. |
范例 | 说明 |
\w | 表示任意字母和数字, 等价于 [a-zA-Z0-9] |
\W | 表示任意非字母和数字字符, 等价于[^a-zA-Z0-9] |
\s | 表示任何空白字符, 包括空格, 制表符, 换页符等等, 等价于 [ \f\n\r\t\v] |
\S | 表示任何非空白字符, 等价于 [^ \f\n\r\t\v] |
\d | 表示任意数字, 等价于 [0-9] |
\D | 表示任意非数字字符, 等价于 [^0-9] |
\b | 表示单词边界, 即字母和空格之间的位置. 也可能表示退格键. |
\B | 表示非单词边界 |
\1 - \10 | 表示前面用 () 包含的第 n 个子表达式. 例: <t(.*?)>caption<\/\1> 可以匹配 <title>caption</title>, 注意里面的 \1 . |
\t | 表示制表符 |
\n | 表示换行符 |
\r | 表示回车符 |
\x## | 表示十六进制值为 ## 的字符, ## 必须为两个字符. 正则表达式中使用 ASCII 编码. 例: \x41 等价于 A , \x041 则等价于 \x04 后面带一个字符 1 . |
\u#### | 表示十六进制值为 #### 的 Unicode 字符. 例: \u00A9 等价于版权符号 © . |
欢迎光临 世界之窗论坛 (http://bbs.theworld.cn/) | Powered by Discuz! 7.2 |