请问帮忙分析一下这句

sidki config set的配置、使用,新手入门首选

Moderator: phoenix

Post Reply
ddbb
Moderator
Posts: 425
Joined: Jan 07 2008, 13:30

请问帮忙分析一下这句

Post by ddbb »

最近打算做一个新的功能 发现sidki里写的比较简洁 所以打算抄一下........

可是这句有点看不明白 改都不知道怎么改..........

:cry:

原文是在Google Search: Add Date Range Box 7.10.22 [sd] (d.s)里的

Code: Select all

[Patterns]
Name = "Google Search: Add Date Range Box     7.10.22 [sd] (d.s)"
Active = FALSE
URL = "$TYPE(htm)www.google.[^:/]+/(intl/[^/]+/(^?)|search\?(^q\=cache:)|webhp|ig(\?|(^?))|(^?))"
Limit = 256
Match = "<input[^>]++name=$AV(q)$STOP()"
        "[^>]+> ("
        "<font size=$AV(-1)[^>]+> (^(\&nbsp; )+<select)"
        "|(^(^(<br /+> )+<input[^>]++name=$AV(btnG)))"
        ")"
        "&&$SET(1=$TST(uFile=ig) style="margin-bottom:5px;")\0"
Replace = "\0 &nbsp;<select name="as_qdr"\1>\n"
          "<option value="" selected>anytime</option>\n"
          "<option value="d">past 24 hours</option>\n"
          "<option value="w">past week</option>\n"
          "<option value="m">past month</option>\n"
          "<option value="m2">past 2 months</option>\n"
          "<option value="m3">past 3 months</option>\n"
          "<option value="m6">past 6 months</option>\n"
          "<option value="y">past year</option>\n"
          "</select>&nbsp;"
主要看不明白的是其中的Match这一段.........

举个例子.......这一段现在能匹配

Code: Select all

<input type=text name=q size=41 maxlength=2048 value="aaaaa" title="検索"> <input type=submit name="btnG" value="検索">
然后我想让他匹配

Code: Select all

<input maxlength=2048 name=q size=55 style="border:solid 1px #7f9db9" title="Google 検索" value=""><input name=btnG type=submit value="Google 検索" style=height:1.8em>
大体上是一样的 就是细节不一样 可是这个细节我就不知道该怎么改了..........

其实主要就是里面的 $AV(q)$STOP() 看不太懂...........
还有最后的 &&$SET(1=$TST(uFile=ig) style="margin-bottom:5px;")\0 这句
User avatar
phoenix
Site Admin
Posts: 526
Joined: Dec 29 2007, 16:27

Re: 请问帮忙分析一下这句

Post by phoenix »

sidki的规则要匹配的是:
  • a: 包含name属性为q的input标记
    b: 加上跟随的一个包含size属性为-1的font标记,font标记后不能有&nbsp;形式的空格和select标记
    c: 或后面是一个包含name属性为btnG的input标记。注意此处匹配的是位置,而不包含实际的input标记。
所以最终匹配的是 a+b 或满足条件 c 的 a ,匹配的内容被放入\0变量。

$STOP()命令可以放在match和replace的任何地方,表示该规则只匹配一次。

Code: Select all

&&$SET(1=$TST(uFile=ig) style="margin-bottom:5px;")\0
表示把前面匹配的内容放入变量\0。同时如果全局变量uFile的值为ig的话,设置一个样式,放入变量\1,这个是针对igoogle风格的google页面。
uFile这个变量是 ! : URL Parser 4.05.26 [sd th] (d.r) (Out) 这条规则设置的,该规则对url进行分解,设置不同的全局变量,具体内容请查阅Lists下的URL-Parser.ptxt。
ddbb
Moderator
Posts: 425
Joined: Jan 07 2008, 13:30

Re: 请问帮忙分析一下这句

Post by ddbb »

感觉这个$AV(q)很好用........

不管q的前后有没有""都会被匹配到.........

这个是prox自代的参数么.........

另外......最后那行 前面的 && 是起什么作用的????
User avatar
phoenix
Site Admin
Posts: 526
Joined: Dec 29 2007, 16:27

Re: 请问帮忙分析一下这句

Post by phoenix »

$AV()是自带的命令,详见 http://www.proxomitron.cn/help/Matching ... ds.html#AV

&&的解释见 http://www.proxomitron.cn/help/Matching%20Rules.html 。这里主要起下面的作用:
the second half of the AND is limited to matching exactly what the first part did.
ddbb
Moderator
Posts: 425
Joined: Jan 07 2008, 13:30

Re: 请问帮忙分析一下这句

Post by ddbb »

又有个小问题...........

最开始 是怎么把匹配的语句放到\0中的......

我也想完成这个功能......可是我没写出来............

P.S: 我还想完成一个小功能..........就是写好一大段HTML加在网页了.....

我觉得直接在Replacement Text里面写的话 有点太麻烦了.....有什么办法么.....

大约有2000字左右的HTML代码
User avatar
phoenix
Site Admin
Posts: 526
Joined: Dec 29 2007, 16:27

Re: 请问帮忙分析一下这句

Post by phoenix »

ddbb wrote:最开始 是怎么把匹配的语句放到\0中的......
&&\0 会把&&前面匹配的内容放入\0。
ddbb wrote:我觉得直接在Replacement Text里面写的话 有点太麻烦了.....
有什么麻烦?
如果代码中包含js的话,你可以考虑放在外部js文件里然后再引用。
ddbb
Moderator
Posts: 425
Joined: Jan 07 2008, 13:30

Re: 请问帮忙分析一下这句

Post by ddbb »

:cry:

因为这个代码里面包含中文.........

你也知道UTF-8的时候中文要转.......而且是一小段一小段的....好多地方.......所以.............

P.S: 添加的这段代码也实在太长........COPY进去 只进去了一半 不让多输入了.........
User avatar
phoenix
Site Admin
Posts: 526
Joined: Dec 29 2007, 16:27

Re: 请问帮忙分析一下这句

Post by phoenix »

那就分成几个规则插入吧。能不能透漏下这个规则是干吗用的? :D
ddbb
Moderator
Posts: 425
Joined: Jan 07 2008, 13:30

Re: 请问帮忙分析一下这句

Post by ddbb »

是BBS的快速回复........默认只有一个输入框....我打算做一些表情什么的进去....

代码已经TEST好了 可是怎么放进去就成了个问题......

JS应该可以做到 不过我的JS水平........

既然prox不能引入HTML 那我再研究研究JS吧.......
ddbb
Moderator
Posts: 425
Joined: Jan 07 2008, 13:30

Re: 请问帮忙分析一下这句

Post by ddbb »

用JS的innerHTML搞定了........

麻烦你了.....
Post Reply