相关文章推荐
飘逸的口罩  ·  如何将CSV导入的嵌套列表转换为指定列数据类 ...·  2 周前    · 
坚韧的大葱  ·  如何将嵌套字典中的numpy ...·  2 周前    · 
苦闷的骆驼  ·  如何将列表列表转为DataFrame列?含N ...·  2 周前    · 
细心的鼠标垫  ·  85后MCN老板3.58亿“捡漏”张小泉:百 ...·  9 月前    · 
睿智的小蝌蚪  ·  DJI Mic ...·  1 年前    · 
酷酷的熊猫  ·  雷电将军mana_哔哩哔哩bilibili·  1 年前    · 
温暖的桔子  ·  通知公告-信阳市浉河区人民政府·  1 年前    · 
体贴的南瓜  ·  膝盖疼是什么病?一个动作就能判断·  2 年前    · 
Code  ›  正则表达式,嵌套的分组 -
正则表达式 嵌套
https://segmentfault.com/q/1010000010853864
爱逃课的骆驼
2 年前
segmentfault segmentfault
注册登录
问答 博客 标签 活动
发现
✓ 使用“Bing”搜本站 使用“Google”搜本站 使用“百度”搜本站 站内搜索
注册登录
  1. 首页
  2. 问答
  3. 正则表达式
  4. 问答详情

正则表达式,嵌套的分组

头像
Charles
640 3 26 35
发布于
2017-08-25

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

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

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

正则表达式
阅读 9.2k
2 个回答
得票 最新
头像
遗忘的晨曦丶_
427 2 8
发布于
2017-08-25
更新于
2017-08-25
✓ 已被采纳
\1 \2用于正则表达式里面的构建,$1 $2用于捕获后,callback里面使用。(没有\0这个东西吧?忘了)

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

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

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

头像
Petu
55 1 3 7
发布于
2017-08-25
更新于
2017-08-25

正则的分组嵌套,个人认为,主要是理解其层级关系。
而,'\1\2\3'...,此类,就是反向引用了。
具体的你可以进入这个网址(某大神整理),耐心的看一遍,相信你会很有收获, http://blog.csdn.net/zgrkaka/...

那对于你给出的,(s([a-z]+)s)d+,其实就是两层的括号嵌套,也就只需要 \1\2 就能全部匹配出来
\1,会匹配第一个括号(分组)的内容,即,s([a-z]+)s
\2,会匹配第二个括号(分组)的内容,即,[a-z]+
\1\2\3、、、,即反向引用,其规则,我现在的理解是:由左向右,有外向内
想要获取值的话,可以使用,构造函数的全局属性 $1 至 $9 来获取

var string = ' abc 123 abc abc';
 
推荐文章
飘逸的口罩  ·  如何将CSV导入的嵌套列表转换为指定列数据类型的NumPy数组?
2 周前
坚韧的大葱  ·  如何将嵌套字典中的numpy array转list?KeyError: '1'报错求解
2 周前
苦闷的骆驼  ·  如何将列表列表转为DataFrame列?含NumPy数组DataFrame转换纠错求助
2 周前
细心的鼠标垫  ·  85后MCN老板3.58亿“捡漏”张小泉:百年品牌能否迎来重生曙光?医药新闻-ByDrug-一站式医药资源共享中心-医药魔方
9 月前
睿智的小蝌蚪  ·  DJI Mic 系列可以搭配哪些产品使用、如何使用?
1 年前
酷酷的熊猫  ·  雷电将军mana_哔哩哔哩bilibili
1 年前
温暖的桔子  ·  通知公告-信阳市浉河区人民政府
1 年前
体贴的南瓜  ·  膝盖疼是什么病?一个动作就能判断
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号