A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 梦想蓝色天空 于 2013-8-28 17:34 编辑

毕老师视频中 有一段是使用正则表达式 按照叠词分割
比如一个正则表达式 (.)\\1+  中\\1这个
比如三个字符叠加的话 为什么不可以直接使用\\2?  而要使用\\1+
\\1代表具体应该如何理解

评分

参与人数 1技术分 +1 收起 理由
张智文 + 1

查看全部评分

7 个回复

倒序浏览
写错了吧
回复 使用道具 举报
首先()是代表一个组,(.)就是把任意字符作为一个组捕获。\\1是代表捕获到的第一个组。1是组的序号。
(.)\\2 这种写法是错误的,因为只有一个()一个组,没有第二组。

评分

参与人数 1技术分 +1 收起 理由
张智文 + 1

查看全部评分

回复 使用道具 举报
\\1是给组编号为1,\\2是给组编号为2,2除了做编号,没有其他意思。
经编码测试:(.)\\1+\\1保留两个叠词,(.)\\1+\\1\\1保留三个叠词
回复 使用道具 举报
yangjie 发表于 2013-8-28 16:14
首先()是代表一个组,(.)就是把任意字符作为一个组捕获。\\1是代表捕获到的第一个组。1是组的序号。
(.)\\2 ...

非常感谢。。。说的很清楚很明白。。。。
回复 使用道具 举报

没有写错。确实是这样的。。楼上说的比较清楚,可以参考一下,,同时谢谢参与{:soso_e121:}
回复 使用道具 举报
老衲玩IT 发表于 2013-8-28 17:27
\\1是给组编号为1,\\2是给组编号为2,2除了做编号,没有其他意思。
经编码测试:(.)\\1+\\1保留两个叠词, ...

嗯嗯。。下面的结果我也测试过了,就是当时没有搞明白,一经提醒明白多了。。谢谢{:soso_e113:}
回复 使用道具 举报
yxz 中级黑马 2013-8-28 17:37:34
8#
yangjie 发表于 2013-8-28 16:14
首先()是代表一个组,(.)就是把任意字符作为一个组捕获。\\1是代表捕获到的第一个组。1是组的序号。
(.)\\2 ...

\\转义会转义为"\",这样就是匹配"\1"的文字。没有实际意义啊。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马