(^)的用法

新手入门、经验交流

Moderator: cre

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

Re: (^)的用法

Post by 白城哨站 » Jan 27 2015, 00:11

明白了,我以为是就整个规则来说的,就拧了。
============
以前论坛不是中文界面吗?
------------------
Cre 编辑了您的部分回复

User avatar
cre
Moderator
Posts: 91
Joined: May 26 2009, 00:34

Re: (^)的用法

Post by cre » Jan 27 2015, 10:51

我编辑了你的部分回复.

删除的原因:
privoxy相关的:
与讨论的问题完全无关.我认为全是废话,没有借鉴价值.

proxomitron的正则不是标准正则,标准学习请google搜索perl正则表达式.
(?!)+这么用真的大丈夫? [\s\S]*?真的有必要?
就算真这么用(?!)+应该比[\s\S]*?高效很多很多很多.因为(?!)+什么都不匹配 [\s\S]*?什么都匹配 呵呵.
[\s\S]和.有什么差别请你告诉我?
\s : 空白 \S : 除了\s以外的全部
我觉得未必是privoxy问题,可能是你的问题!
反正你的正则有问题,我确定.

header相关的:
你提出的错误的问题,让我觉得你学习态度有问题.你根本没看菲菲说过的原帖.
请在说话前有负责任的觉悟.
已经给你指引的问题,不应该不测试就直接问.至少,你问之前先照原样导入测试了再提问好吗?难道我写的规则跟你发的一样吗? 这种错误的问题浪费了彼此的时间.

跳转的header是写在url[urlmatch]的而不是headermatch和headerreplace!

请在提问得到答复后先测试了再质询.

我回答你的问题难道是因为我闲的无聊吗?
我的回复其实超出范围了.
我是希望有后来者看到能省去摸索的时间,而不是无聊陪你玩.
你知道你1分钟发帖我花了多久回复吗?
如果你没有治学的态度,请直接说一声,我也省得考虑好久,测试N次.

结帖不要东拉西扯.明白就是明白.这还没明白就继续抛问题,是不对的.
如果你先说"明白了",然后跟着附加回一帖说privoxy,我会对此不作回应,但我肯定不会编辑掉.让你明白的目的已达到,我管那么多呢.
那么问题来了.为什么你以前结帖看似你说了很多,我就说你根本没明白呢?之前回复的[明白了,我以为是就整个规则来说的,就拧了。],我就知道你明白了,我一定是神仙吧.

如果你有异议,欢迎提出.但请你认真点.我不喜欢你的态度.

白城哨站
Posts: 19
Joined: May 21 2014, 13:06

Re: (^)的用法

Post by 白城哨站 » Jan 27 2015, 18:55

先认错,我的规则问题,是因为JUMP没有补http://对吧?这是我的错,我复制时没想到,直接从下面移过去的。

你那两条我确实是从网页上复制粘贴,然后剪贴板导入,应该是哪个步骤漏了,这是我不仔细。

JUMP上犯的错误有两个,一是没有写入URL部分,一是没有“http://”。

不是找理由,说说为什么你觉得这么不可理喻的错误我就是意识不到。

你们回帖还有帮助文件,我看的很吃力,基本是连蒙带猜,如果你不是直接说“跳转的header是写在url[urlmatch]的而不是headermatch和headerreplace!”还是不知道错哪了。最早接触的一个$命令是$SETPROXY,看到“限制: 匹配表达式或替换文本部分”“和上个命令一样,这个命令只能在 out header 过滤的匹配表达式或替换文本部分调用。”然后上网找例子,$SETPROXY在替换那里,然后我就把这两句理解成了“限制”写入位置。现在我就得问“限制”什么意思了,连汉语都看不明白?但是真不明白。

于是到用JUMP的时候看到“限制: 匹配表达式或替换文本部分”,就也写到了那里。试了确实工作,所以就是理解不了为什么要写入URL,我以为是个人风格。

二是网页规则中网址不让写http,写了反倒不匹配,犯过好多次错,有时候规则里测试文本里带上了,后来复制网址时就避免复制http://。再加上上一条的原因我是分开写的,还能工作,我又想就算缺少http://浏览器也能补全,所以完全意识不到哪里错了。结果就是测试自己规则时,不带http://,复制你的规则是带http://,正好都能用,然后怎么也想不明白。


说能力差我认,说态度就冤枉了,就补http://也是刚才发现的,我用了文本校验一行行的对,昨晚自己查时就是想不到,不是我不测就发帖啊。你可以看看后台,昨天9点就看到你的帖子,直到凌晨才回帖,中间都在弄这个。


不是不求甚解,只是没在这问,你们又不是我花钱雇的老师,不影响使用就不好意思打扰了,自己是一直在琢磨。问题我都记着呢,不然也不会问上一个问题。其实谷粉那帖当时另一条规则强制过滤后来也仿过,有的网站不生效,也没问,直到后来偶然知道网页不是直接传输,而是经过gzip压缩的。还有中文替换,为了明白UTF-8什么意思,从知乎到阮一峰博客到维基Uncoide,最后开着计算器手动计算对照,才算明白。在不懂之前看解释编码、编码表、编码方式、编码格式,这不都是一个词吗?我没有这个基础,你觉得不用解释的,我看不懂。如果不是学过正则,我也不明白前面提到的?做前导为什么就不好。其实规则框架也不知道什么意思,现成的规则包?

(^<br>)(????)\1你说不跟(????)试试,我当时就试了啊

查找:(^<br>) 替换:留空 文本:<br>1234
结果:<br>1234
理解:(^<br>)找到的是位置,位置替换了,字符留下了


查找:(^<br>)\1 替换:\1 文本:<br>1234
结果:<br>1234
理解:括号里的放到了\1,位置原样替换,字符还是不变


查找:(^<br>)\1 替换:留空 文本:<br>1234
结果:<
这个就不理解了,括号里的放到了\1,删除也是删位置,字符上哪去了?

现在想想(^)\1不是()\1,虽然长得像,但不是一对,并不能“把在括号里的所有字符都保存到变量1”,这里的\1相当于*了。是不是觉得这天然呆错也能犯?

当时极为纠结,我确定不了(^<br>)是位置还是字符,于是后面的帖子我是先按照“字符”看,又按照“位置”看,来回对比实验,最后才提出能否参照正则理解。现在我也不确定理解的对不对,但这种小事不好意思问啊。

还有那个拧了,看了后来举的两个例子是明白了,之前理解的和你的说法正好相反,你说的“非到了”是指bef(^key)找到befkey,然后“非”了,这就是“非到”了;我是指bef(^key)找到befabc,因为其它的都给“非”了,所以找“到”了,以这个结果去想“位置对了”??????反倒不匹配当然拧吧。

关于正则,.不匹配换行符啊,所以我才用[\s\S]。有的软件可以设置是否匹配,那就用不着[\s\S]了。我记得说的是“(?!)+贪婪”,是想说“环视加贪婪”,不是“(?!)+”。“<script(?:(?!\/script)[\s\S])*<\/script>”就是照着教程里的“(?:(?!src=).)*”改的啊?

User avatar
cre
Moderator
Posts: 91
Joined: May 26 2009, 00:34

Re: (^)的用法

Post by cre » Jan 29 2015, 21:39

你让我怎么说好呢?phoenix欢迎讨论其他软件,而且专门分了个版.
但问题是,我实在不想讨论其他啊...我又不用privoxy,为什么要去查资料?
我不想讨论privoxy,分析正则匹配是日常我会用到.
但这些正则相关的东西,跟我有什么关系呢?
文本编辑器多行匹配就相当于/sm. vim和javascript的替换全文需要/g.这些知道就行了,难道还要专门研究不成.

你前面说的我看到了,你确实努力了,这可以说你不会只是基础不够而不是不愿钻研.
可后面说的马上就让我火了.你根本不看帮助,信口胡说.

关于正则,.不匹配换行符啊

这是谁跟你说的?你好像也用的privoxy吧.你为什么不搜索下呢?
仔细看看.privoxy\doc\user-manual\filter-file.html
2015-01-29_210322.png
2015-01-29_210322.png (28.7 KiB) Viewed 4148 times
这个文件是filter的示例,也解释一些相关的 比如正则的模式

参考:正则表达式的模式
http://perldoc.perl.org/perlre.html#Modifiers [英文]
http://www.jb51.net/shouce/php5/zh/refe ... fiers.html [中文,但是php的,应该多相通]

讨论proxomitron时候请别拿privoxy参照.我英文并不好,不想翻帮助文件.更大的问题是,这本来应该你干的事,让我替你做,明显不对头.

User avatar
cre
Moderator
Posts: 91
Joined: May 26 2009, 00:34

Re: (^)的用法

Post by cre » Jan 29 2015, 21:40

这里还是要说一点....
正则这个说法也很绕.
平时说的多行匹配,正则其实叫[多行视为单行模式].平时说的单行匹配,其实才是[多行模式].

User avatar
cre
Moderator
Posts: 91
Joined: May 26 2009, 00:34

Re: (^)的用法

Post by cre » Jan 29 2015, 21:54

2015-01-29_203257.png
2015-01-29_203257.png (26.75 KiB) Viewed 4148 times
这里说的多行是多行匹配 但是vim和madedit都有单行模式 就是那个\r\n....vim是单\n

User avatar
cre
Moderator
Posts: 91
Joined: May 26 2009, 00:34

Re: (^)的用法

Post by cre » Jan 29 2015, 22:04

一些当天的图,因为当时没上传,现在写说明痛苦

传图还是有问题....

Post Reply