2011年6月11日
摘要: 平衡组/递归匹配 这里介绍的平衡组语法是由.Net Framework支持的;其它语言/库不一定支持这种功能,或者支持此功能但需要使用不同的语法。 有时我们需要匹配像( 100 * ( 50 + 15 ) )这样的可嵌套的层次性结构,这时简单地使用\(.+\)则只会匹配到最左边的左括号和最右边的右括号之间的内容(这里我们讨论的是贪婪模式,懒惰模式也有下面的问题)。假如原来的字符串里的左括号和右括号出现的次数不相等,比如( 5 / ( 3 + 2 ) ) ),那我们的匹配结果里两者的个数也不会相等。有没有办法在这样的字符串里匹配到最长的,配对的括号之间的内容呢? 为了避免(和\(把你的大脑彻底. 阅读全文
posted @ 2011-06-11 17:32 钱途无梁 阅读(4043) 评论(1) 推荐(2) 编辑
摘要: 概述正则表达式是 做文本解析工作必不可少的技能。如Web服务器日志分析,网页前端开发等。很多高级文本编辑器都支持正则表达式的一个子集,熟练掌握正则表达式,经常能够 使你的一些工作事半功倍。例如统计代码行数,只需一个正则就搞定。嵌套Html标签的匹配是正则表达式应用中一个比较难的话题,因为它涉及到的正则语法比 较多,也比较难。因此也就更有研究的价值。思路任何复杂的正则表达式都是由简单的子表达 式组成的,要想写出复杂的正则来,一方面需要有化繁为简的功底,另外一方面,我们需要从正则引擎的角度去思考问题。关于正则引擎的原理,推荐 《Mastering Regular Expression》中文名叫《精 阅读全文
posted @ 2011-06-11 13:52 钱途无梁 阅读(8658) 评论(4) 推荐(3) 编辑