您的位置:程序门 -> java -> web 开发



(\w)\1{4,}和(\w){4,}\1和(\w)\1{4,}\1的困惑


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


(\w)\1{4,}和(\w){4,}\1和(\w)\1{4,}\1的困惑
发表于:2007-10-02 22:33:38 楼主
(\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"   在匹配   "aa   bbbb   abcdefg   ccccc   111121111   999999999"   时的困惑
(\w)\1{4,}匹配   ccccc   999999999
(\w){4,}\1匹配   ccccc   111121111   999999999
(\w)\1{4,}\1匹配   999999999
到底\1做了什么呀?   反向引用   \1,   \2...那段话真是理解的不是很好。。。
可否说下呢?谢谢了
(\w)\1{4,}匹配   ccccc   999999999
(\w){4,}\1匹配   ccccc   111121111   999999999
(\w)\1{4,}\1匹配   999999999
youngord(621852223)   22:16:20
那\1位置不同,差异那么大呀
发表于:2007-10-03 09:24:411楼 得分:0
(\w){4,}\1最不好理解,我就记住它吧.
\1   好象是替换成\w,而不是前边匹配的某个具体的字符.
(\w)\1{4,}和(\w)\1{4,}\1   还是一下就看明白了的.就是连续的几个相同的字符.
发表于:2007-10-04 09:58:142楼 得分:0
你的\w匹配什么,\1就匹配什么,就好比\w\w{4,0},
发表于:2007-10-04 11:54:093楼 得分:0
楼上说的不对,\w\w{4,0}与(\w)\1{4,0}那是相当的不一样.


快速检索

最新资讯
热门点击