2009年6月26日星期五

Vim中的正则表达式,对应于《正则表达式30分钟入门教程》


 deerchao的《正则表达式30分钟入门教程》我读过好几遍,可以说是极好的学习正则表达式的入门文章。我常用的文本编辑器是Vim,具有强大的查找功能。不过,Vim的表示方式和《正则表达式30分钟入门教程》有些不同。这遍文章对应教程,把不同部分列出来,作为备份。
 说明:相同的就不列出来了。

序号


入门教程


Vim


备注


1


\b是正则表达式规定的一个特殊代码……代表着单词的开头或结尾,也就是单词的分界处


没有直接对应的。

\<,表示单词的起始;

\>,表示单词的结


要查找单词hi,要用 \<hi\>


2


+则匹配重复1次或更多次


\{1,}  1 或更多,同 \+


\d+匹配1个或更多连续的数字,Vim \d\+


3


重复零次或一次


\{0,1}   0 1,同 \=





4


\(?0\d{2}[) -]?\d{8}

这个表达式可以匹配几种格式的电话号码


\(\=0\d\{2}[) -]\=\d\{8}





5


如果满足其中任意一种规则都应该当成匹配,具体方法是用|把不同的规则分隔开


在一个查找模式中,"" 运算符是 "\|"





6


 \b(\w+)\b\s+\1\b

可以用来匹配重复的单词


\<\(\w\+\)\s\+\1\>





7


\b\w+(?=ing\b),匹配以ing结尾的单词的前面部分(除了ing以外的部分)


\<\w\+\(ing\)\@=


Vim称为:零宽度匹配前面的匹配原


8


(?<=\bre)\w+\b 会匹配以re开头的单词的后半部分(除了re以外的部分)


\(\<re\)\@<=\w\+


零宽度反向匹配。要求前面的匹配原紧贴在后面的模式之前匹配


9


假如你想要给一个很长的数字中每三位间加一个逗号(当然是从右边加起了)

((?<=\d)\d{3})+\b


\(\(\d\)\@<=\d\{3}\)\+\>





10


(?<=\s)\d+(?=\s)匹配以空白符间隔的数字


\(\s\)\@<=\d\+\(\s\)\@=





11


匹配包含后面不是字母u的字母q的单词

\b\w*q(?!u)\w*\b


\<\w*q\(u\)\@!\w*\>


零宽度否匹配,亦即,要求前面的匹配原在当前位置__匹配


12


\d{3}(?!\d)匹配三位数字,而且这三位数字的后面不能是数字


\d\{3}\(\d\)\@!





13


\b((?!abc)\w)+\b匹配不包含连续字符串abc的单词


\<\(\(\(abc\)\@!\)\w\)\+\>





14


(?<![a-z])\d{7}匹配前面不是小写字母的七位数字


\([a-z]\)\@<!\d\{7}


零宽度反向否匹配,要求前面的匹配原__紧贴在其后的模式之前匹配


15


(?<=<(\w+)>).*(?=<\/\1>)匹配不包含属性的简单HTML标签内里的内容


没解决,寻求帮助







以前的文章《Vim中表示匹配尽可能少的正则表达式【.\{-}】

2009年6月20日星期六

探求因果联系的美妙旅程 ——读《被掩盖的经济真相》

             探求因果联系的美妙旅程 ——读《被掩盖的经济真相》
  阅读托马斯·索维尔的《被掩盖的经济真相——辨识最平常经济现象的真实与谬误》,是一次美妙的精神旅程,跟随作者的脚步,分析经济现象的实质,领悟科学思维的精髓。
  读完后,我想起爱因斯坦的一句话,大意是,现代科学在两个来源,一是古希腊的形式逻辑,二是近代兴起的通过实验寻求因果联系的方法。书中介绍的各种的调查、统计相当于实验,当然不可缺少;但人们的目的是为了寻求真实的因果关系,而这必须运用严谨的逻辑推理,一不留神,就会掉进谬误中。《被掩盖的经济真相》通过大量的事例,讲述了经济现象中的谬误,并且让我从中领会到科学精神的美妙。
  在这美妙的旅程中,关于科学精神,我领会最深的一点是,面对一个结论,找出其中隐含的因果关系(A→B),仔细考虑,有没有其它的假设可以解释B。以最后一章《第三世界的真实和谬误》为例,说说我和理解。现在贫国(第三世界)和富国之间差距明显,历史上很多富国征服过贫国。那么能得出结论“贫国的贫困是由于富国的征服造成的么”。答案不是简单的,先来一个问题,征服者为什么能征服成功,因为征服者和被征服者之间的政治、经济、军事、知识等方面存在着巨大的差距。怎么能肯定贫困不是这些政治经济方面所造成的呢。此外,还有些国家并没有被征服,也是很贫困。还有,被征服的国家中,并不都是贫困的,有一些国家已经发展起来。
  该书第二章《城市的真实与谬误》中“住房与飙升的房价”,是对我们现实最具参考意义的,可以帮忙理解茅于轼为什么建议取消经济适用房。

2009年6月7日星期日

从“充100送100”的骗局说起

前些天,路边常有摆着招牌,说手机充值,高额返还,并承诺当场查询。开始是充100送45、50,后来是充100送100,充200送200.我根本不相信,移动富得都流油了,不至于做出这种买卖。但它是怎么做的,让人可以查询呢。今天想到这个事情,搜索了一下。

直接用“充100送100”在百度、Google搜索。综合各方面信息,可以非常确定这是骗局。骗子利用的是回拨卡技术。回拨卡在2007年就被信息产业部叫停。当时充值成功,但以后用时,可能一直提示忙,无法拨通骗子提供的号码。另外,话费可能一下子就消失。下
面是一些揭露的文章:手机充值“廉价卡”两天后遭停机充值400送600?原是回拨卡骗局街头手机充值优惠连环骗局大揭秘


写这篇文章的目的是想说明一切都可以搜索。任何的疑问、困惑,都试一试搜索。很多时候,能让人们受益!

Outlook高级查找限定在某段时间内搜索的方法

昨天想找某一段时间内的一封邮件,如从4月5号到6月12号。研究了半天outlook的高级搜索,还是没能直接解决。本来,“高级查找”——“高级”——“字段”——“常用字段”,选“接收时间”后,“条件”下拉框有一个选项是“介于”,但后面的“值”,无论我怎样尝试,怎么改变,都弹出“必须按以下格式键入该值:“<值1>”和<值2>"。就怎样放弃么,最后想到迂回的方案,成功!
方法是利用搜索文件夹。先查找4月5号之后收到的邮件,再“将搜索另存为搜索文件夹”,然后在这个“搜索文件夹”中查找6月12号之前的邮件。
关于”搜索文件夹“,微软的office online上有详细的资料。如创建搜索文件夹关于搜索文件夹