正则表达式的经典部分(自己要理解)

2009年4月29日星期三

正则表达式的经典部分(自己要理解)

(\w)\1{4,}和(\w){4,}\1和(\w)\1{4,}\1的困惑
反向引用\1,\2...
表达式在匹配时,表达式引擎会将小括号()包含的表达式所匹配到的字符串记录下来。在获取匹配结果的时候,小括号包含的表达式所匹配到的字符串可以单独获取。这一点,在前面的举例中,已经多次展示了。在实际应用场合中,当用某种边界来查找,而所要获取的内容又不包含边界时,必须使用小括号来指定所要的范围。比如前面的td(.*?)/td。

其实,小括号包含的表达式所匹配到的字符串不仅是在匹配结束后才可以使用,在匹配过程中也可以使用。表达式后边的部分,可以引用前面括号内的子匹配已经匹配到的字符串。引用方法是\加上一个数字。\1引用第1对括号内匹配到的字符串,\2引用第2对括号内匹配到的字符串……以此类推,如果一对括号内包含另一对括号,则外层的括号先排序号。换句话说,哪一对的左括号(在前,那这一对就先排序号。
-----------自己这段话理解的不是很好,所以下面的例子就更晕

(\w)\1{4,}和(\w){4,}\1和(\w)\1{4,}\1在匹配aabbbbabcdefgccccc111121111999999999时的困惑
(\w)\1{4,}匹配ccccc999999999
(\w){4,}\1匹配ccccc111121111999999999
(\w)\1{4,}\1匹配999999999
到底\1做了什么呀?反向引用\1,\2...那段话真是理解的不是很好。。。
可否说下呢?谢谢了
(\w)\1{4,}匹配ccccc999999999
(\w){4,}\1匹配ccccc111121111999999999
(\w)\1{4,}\1匹配999999999
youngord(621852223)22:16:20

0 评论:

发表评论