为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式中的()表示?

正则表达式中的()表示?

qq_控心_0 2017-09-06 18:04:56
如题,正则中(\\d)表示什么? 还有\\1表示什么? 谢谢。
查看完整描述

1 回答

已采纳
?
onemoo

TA贡献883条经验 获得超454个赞

小括号括起来的这部份正则表达式可以被当作一个“组”。这个组可以作为整体被后面的修饰,也可在后续处理中单独获得这一部分正则的匹配结果。


正则表达式 \d 表示匹配一个数字。但是由于 Java 的字符串中 \ 是转义字符,所以需要写成 \\ 来表示正则表达式中的反斜线 \。

那么 (\\d) 就表示匹配一个数字。并且小括号表示将其作为一个组,同时记下了这个匹配结果(后面会用到)。


正则表达式 \1 或者类似的“反斜线+数字N”就代表前面“第N个组”的结果,因为一个正则表达式中可能有多个小括号扩起的组,所以用 \1  \2  \3 等来分别代表之前的组。

同样的道理,Java 的字符串用 \\1 表示正则表达式 \1。

查看完整回答
反对 回复 2017-09-06
  • qq_控心_0
    qq_控心_0
    谢谢你的回答,那如果是(\\d)(\\D)\\2 代表的就是使用(\\D)这个组,对吧?
  • qq_控心_0
    qq_控心_0
    还有 匹配三个相同的数字 用(\\d)\\1{2} 这个{2}中的2为什么是2,用其他的就不行了,这个{2}不是表示2次吗,那三个数字怎么是2次?
  • onemoo
    onemoo
    恩没错,(\\d)(\\D)\\2 之中的 \\2 代表 \\D。
点击展开后面2
  • 1 回答
  • 0 关注
  • 1418 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信