Page 1 of 1
规则合并求助
Posted: Mar 09 2010, 17:02
by red
国内youtube看不了,但有cnyoutube
youtube的视频地址暂时发现有两种形式,
http://www.youtube.com/v/xxxxxxxx和http: ... v=xxxxxxxx
而cnyoutube只有http://
www.cnyoutube.com/watch?v=xxxxxxxx的形式。为此写了两规则
Code: Select all
In = FALSE
Out = TRUE
Key = "Youtube-1"
URL = "www.youtube.com/v/\1&$JUMP(http://www.cnyoutube.com/watch?v=\1)"
Code: Select all
In = FALSE
Out = TRUE
Key = "Youtube-2"
URL = "www.youtube.com/\1&$JUMP(http://www.cnyoutube.com/\1)"
这两规则能不能合并下
Re: 规则合并求助
Posted: Mar 09 2010, 23:25
by i11
Code: Select all
[HTTP headers]
In = FALSE
Out = TRUE
Key = "Youtube-1"
URL = "(http://www.youtube.com((/v/\1)|(/watch\?v=\1)))&$JUMP(http://www.cnyoutube.com/watch?v=\1)"
Re: 规则合并求助
Posted: Mar 10 2010, 00:14
by red
感谢i11,但规则并不起效。原先单独的规则马上就跳转。你给出的规则不会跳转
这是原先的Http Message Log
Code: Select all
New Message Log Window....
BlockList 1365: in IncludeExclude, line 456
GET 1365 : Keywords (List): .f_cookie.
JumpTo: http://www.cnyoutube.com/v=aaaa
1.\的用法还有不明了,help里提到
The Backslash can be used to "escape" any character that has special meaning and treat it as a normal character. For example, to match a parenthesis in the HTML text use "\(", to match a backslash itself use "\\".
具体有些特殊符号,比如?符号算否
2.or语句里\1能使用多次吗
(http://www.youtube.com((/v/\1)|(/watch\?v=\1)))
Re: 规则合并求助
Posted: Mar 10 2010, 06:25
by Bonnie
Code: Select all
In = FALSE
Out = TRUE
Key = "Youtube-1"
URL = "www.youtube.com/(v/|watch?v=) \1&$JUMP(http://www.cnyoutube.com/watch?v=\1)"
所有Proxomitron使用的特殊符号比如*|()\?大多都需要转义。好像唯一的例外是$。如果不确定就添加上转义符,记得不会有副作用。
OR里可以用多个\1,匹配的那个会被储存。
Re: 规则合并求助
Posted: Mar 10 2010, 11:52
by red
非常感谢Bonnie,规则很好用
有个疑问,为何这里\1之前需要有个空格,仅去掉空格或者去空格后加括号改成
变量\1取到的就不是想要的值
Re: 规则合并求助
Posted: Mar 10 2010, 12:27
by Bonnie
不加空格表示将"v/"或者"watch?v="中被匹配的那个放进变量,加了空格表示将"v/"或者"watch?v="后面的内容放进变量。
Re: 规则合并求助
Posted: Mar 10 2010, 20:04
by red
明白了,如果变量跟在一个or语句里不加空格和加空格有区别。如果不在一个or语句里有无空格是一样的。i11的规则其实也是对的
只是我测试时不加http头,所以无法匹配。个人感觉对于$JUMP来说之前的地址还是不加http://的好,并且Bonnie的规则更简洁
Code: Select all
[HTTP headers]
In = FALSE
Out = TRUE
Key = "Youtube-1"
URL = "(www.youtube.com((/v/\1)|(/watch\?v=\1)))&$JUMP(http://www.cnyoutube.com/watch?v=\1)"
Re: 规则合并求助
Posted: Mar 11 2010, 17:28
by phoenix
red wrote:明白了,如果变量跟在一个or语句里不加空格和加空格有区别。如果不在一个or语句里有无空格是一样的。
与是否是or语句无关。与是否直接跟在一组圆括号后面有关。
http://www.proxomitron.cn/help/Matching%20Rules.html :
More complex matches can be captured by placing the \0-9 directly after a set of parenthesis with no spaces in-between
red wrote:i11的规则其实也是对的
只是我测试时不加http头,所以无法匹配。
他的规则不对。
URL Match 部分不能加 http 。