关于这段修改字符的规则 到底是哪里有点问题呢

新手入门、经验交流

Moderator: cre

Forum rules
  • 软件自带帮助是最好的入门教程,请仔细阅读;在您掌握最基本知识前,我们没法帮助您
  • 提问前请先查阅软件帮助文件和论坛相关讨论
  • 查阅软件帮助和论坛相关讨论即可解决的问题帖将直接删除,以免浪费他人时间
  • 请学会如何提问,尽量将问题描述清楚,不明确的提问将被直接删除
ddbb
Moderator
Posts: 425
Joined: Jan 07 2008, 13:30

关于这段修改字符的规则 到底是哪里有点问题呢

Post by ddbb »

代码

Code: Select all

[Patterns]
Name = "Update 200 Byte Char 2009.02.11 [ddandyy]"
Active = TRUE
URL = "$TYPE(htm)$LST(UpdateList)|$TYPE(css)$LST(UpdateList)"
Limit = 150
Match = "$GET(MUCM)"
Replace = "<!-- Update 200 Byte Char 2009.02.11 Start [ddandyy] -->\r\n"
          "$GET(MUCR)\r\n"
          "<!-- Update 200 Byte Char 2009.02.11 End [ddandyy] -->\r\n"
BlockList文件内容
# NOADDURL $LST(UpdateList)
#
#bbs.pcpop.com/images/style.css $SET(MUCM=) $SET(MUCR=)

bbs.pcpop.com/images/style.css $SET(MUCM=form\s{\1}) $SET(MUCR=form {overflow:visible !important\r\n\1\r\noverflow:visible !important})
感觉应该是没问题的......可是就是没有效果......我还看了LOG
里面也有
BlockList 575: in UpdateList, line 6
这句........可是为什么没效果呢......
ddbb
Moderator
Posts: 425
Joined: Jan 07 2008, 13:30

Re: 关于这段修改字符的规则 到底是哪里有点问题呢

Post by ddbb »

基本已经可以确定是 $SET(MUCM=form\s{\1}) 还有 Match = "$GET(MUCM)" 这里出了问题.....

我把Match换成固定的 form\s{\1} 就是没问题的.........

我还试了$TST(MUCM) 还是不行......

难道是不能这么做??

P.S: 明白了..........查到了这句......
$GET(VariableName)
Restrictions: Replace only
Filter Types: All
看来得想别的办法了........再查一查.....
ddbb
Moderator
Posts: 425
Joined: Jan 07 2008, 13:30

Re: 关于这段修改字符的规则 到底是哪里有点问题呢

Post by ddbb »

:(

查下来 好像是没有办法的了.......

在Match里不支持动态的.....这个可能是从效率上考虑吧........
User avatar
phoenix
Site Admin
Posts: 529
Joined: Dec 29 2007, 16:27

Re: 关于这段修改字符的规则 到底是哪里有点问题呢

Post by phoenix »

一个变通的办法:

Code: Select all

[Patterns]
Name = "Update 200 Byte Char 2009.02.11 [ddandyy]"
Active = TRUE
URL = "$TYPE(htm)|$TYPE(css)"
Limit = 150
Match = "$LST(UpdateList)"
Replace = "<!-- Update 200 Byte Char 2009.02.11 Start [ddandyy] -->\r\n"
          "$GET(MUCR)\r\n"
          "<!-- Update 200 Byte Char 2009.02.11 End [ddandyy] -->\r\n"
$LST(UpdateList)写成:
$URL(http://bbs.pcpop.com/images/style.css)form\s{\1} $SET(MUCR=form {overflow:visible !important\r\n\1\r\noverflow:visible !important})
ddbb
Moderator
Posts: 425
Joined: Jan 07 2008, 13:30

Re: 关于这段修改字符的规则 到底是哪里有点问题呢

Post by ddbb »

果然强大......

谢谢了......

现在就好多了.......这样可以精简一些小块的代码....sidki的规则本来就已经很多了.....再加一些很小的规则感觉就有点不舒服了........

这样放在list里 用一个规则来处理 是不是应该会好一些呢.......
skywolf
Posts: 4
Joined: Jan 23 2009, 10:05

Re: 关于这段修改字符的规则 到底是哪里有点问题呢

Post by skywolf »

很好很强大
有关网页代码修正的,都可以放在一起了
User avatar
phoenix
Site Admin
Posts: 529
Joined: Dec 29 2007, 16:27

Re: 关于这段修改字符的规则 到底是哪里有点问题呢

Post by phoenix »

说实话,我觉得这种方式不好。

既没有URL Match,也没有Bounds Match,会导致每个符合类型限制的网页的每个字符都扫描一遍该规则,该规则又要遍历blockfile中的每个项目直到末尾或找到匹配项,效率可想而知。。。
ddbb
Moderator
Posts: 425
Joined: Jan 07 2008, 13:30

Re: 关于这段修改字符的规则 到底是哪里有点问题呢

Post by ddbb »

其实.......我也是这么想.....所以我上面才会问一下你.....

那有没有什么解决的方法呢........

P.S: 用两个BLOCKLIST怎么样.....

在URL那里用一个URL = "$TYPE(htm)$LST(XXX)|$TYPE(css)$LST(XXX)"

这个里面只放URL 然后下面的不变......这样只有在这些URL的时候才会进到下面.......
User avatar
phoenix
Site Admin
Posts: 529
Joined: Dec 29 2007, 16:27

Re: 关于这段修改字符的规则 到底是哪里有点问题呢

Post by phoenix »

那样当然会好很多,不过每增加一个项目都要操作2个blockfile,似乎有些麻烦。

另外,还是避免不了每个字符都要被扫描一遍的问题。如果所添加项目有一定规律,能提取出Bounds Match就好了。

你可以参考下sidki的 Manage: Specific Containers on sel. Sites 规则和对应的 AdKeys-S.ptxt 文件,看看他是如何使用全局变量的。不过,象 $SET(MUCM=form\s{\1}) 这种全局变量又夹杂临时变量的格式,我怀疑无法实现。
ddbb
Moderator
Posts: 425
Joined: Jan 07 2008, 13:30

Re: 关于这段修改字符的规则 到底是哪里有点问题呢

Post by ddbb »

这个一考虑过Bounds Match的问题........现在唯一能想到的就是在前面加(<|.|#|{) 前3个几乎能对应所有的标签和CSS了 最后一个就是为了对应上面的这种情况 是字母开头的...只能先忽略字母 用CSS的内容来控制了....虽然也有点不太好.......不过相对也好点吧......当规则多了之后 应该还是有点用的......打算现在就先这么用了.......
Post Reply