- UID
- 10253
- 帖子
- 3334
- 精华
- 0
- 贡献
- 20
- 推广
- 0
- 有效BUG
- 0
- 来自
- 江门·中国
- 注册时间
- 2006-4-28
|
此规则参考为个人参考用.
傲游浏览器自定义过滤规则参考版本: 2.0.1
最后修改: 概览傲游浏览器提供了强大的自定义过滤规则系统. 此文档为自定义规则的简要参考资料.
自定义规则分为 4 种类型:
- 文本类型: 对页面的源代码进行处理.
- 网址(URL)类型: 对符合条件的网址进行处理.
- 请求(Request)类型: 对符合条件的 HTTP 请求进行处理.
- 响应(Response)类型: 对符合条件的 HTTP 响应进行处理.
每种类型有其对应的属性.
自定义过滤规则的属性以下是用来定义规则的属性列表, 对不同类型的过滤规则, 可用的属性略有不同. 所有属性名区分大小写.
√ 必须 $ 可选 × 不可用属性名 | 文本类型 | 网址类型 | 请求类型 | 响应类型 | 说明 | 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 | × | $ | $ | $ | 返回给浏览器的内容 |
- action 属性取值说明action 属性确定过滤规则所执行的操作.
取值 | 文本类型 | 网址类型 | 请求类型 | 响应类型 | 说明 | 0 | √ | √ | √ | √ | 无操作, 默认值 | 1 | × | × | √ | √ | 删除匹配的 HTTP Header | 2 | × | × | √ | √ | 添加一个 HTTP Header, 使用 header 属性的值作新 Header 名称和 replace 属性的值作为值 | 3 | √ | √ | √ | √ | 用 replace 的内容替换 match 或 match_url 所匹配的字符串
同样适用文件头和文件尾匹配宏函数 $FILESTART() 和 $FILEEND() |
- postaction 属性取值说明postaction 属性确定过滤规则执行完操作后的动作.
取值 | 文本类型 | 网址类型 | 请求类型 | 响应类型 | 说明 | 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 属性. |
- 正则表达式参考 (Regular Expression)傲游浏览器使用的正则表达式与 Perl 5 的正则表达式语法相同. 这里仅提供少量的信息作为快速参考.
基本语法模式 | 说明 | . | 匹配除换行符(\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 等价于版权符号 © . |
[ 本帖最后由 needed 于 2006-12-25 11:51 编辑 ] |
|