正则表达式,嵌套的分组

查看:278
本文介绍了正则表达式,嵌套的分组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

(\d+)(.)(\d+)
我知道这样的分组,每一个分组有一个序号\1\2\3,\0是整个匹配

但是如果分组里有分组,又是怎样命名的呢
比如(\s([a-z]+)\s)\d+

这里的([a-z]+)是如何命名的,或者说我要如何取得这个分组

解决方案

\1 \2用于正则表达式里面的构建,$1 $2用于捕获后,callback里面使用。(没有\0这个东西吧?忘了)

可以这样,外围不需要的分组,使用非捕获符号?:,这样$1 $2就是你需要的捕获了。

(?:\s([a-z]+)\s)\d+

另外 ([a-z]+) 指捕获由a到z组成的多个字符串,至少有一个字符;同理,捕获到了,就可以在match等方法的返回中可以找到对应的捕获。

这篇关于正则表达式,嵌套的分组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆