捕获组分为:

  • 普通捕获组(Expression)
  • 命名捕获组(?Expression)

普通捕获组

从正则表达式左侧开始,每出现一个左括号"("记做一个分组,分组编号从 1 开始。0 代表整个表达式。

对于时间字符串:2017-04-25,表达式如下

(\\d{4})-((\\d{2})-(\\d{2}))

有 4 个左括号,所以有 4 个分组:

编号 捕获组 匹配
0 (\d{4})-((\d{2})-(\d{2})) 2017-04-25
1 (\d{4}) 2017
2 ((\d{2})-(\d{2})) 04-25
3 (\d{2}) 04
4 (\d{2}) 25

命名捕获组

每个以左括号开始的捕获组,都紧跟着 ?,而后才是正则表达式。

对于时间字符串:2017-04-25,表达式如下:

(?<year>\\d{4})-(?<md>(?<month>\\d{2})-(?<date>\\d{2}))

有 4 个命名的捕获组,分别是:

编号 名称 捕获组 匹配
0 0 (?\d{4})-(?(?\d{2})-(?\d{2})) 2017-04-25
1 year (?\d{4})- 2017
2 md (?(?\d{2})-(?\d{2})) 04-25
3 month (?\d{2}) 04
4 date (?\d{2}) 25

命名的捕获组同样也可以使用编号获取相应值。

转载于:https://www.cnblogs.com/mol1995/p/10927146.html

命名分组(?name....)相关推荐

  1. 捕获分组和非捕获分组以及命名分组

    下面由一个例子引出非捕获组. 有两个金额:8899¥.显然,前一个是8899元的人民币,后一个是6688元的美元.我现在需要一个正则,要求提炼出它们的货币金额和货币种类.正则可以这写:(\\d)+([ ...

  2. 分组,命名分组,url的命名和反向解析

    1.位置分组 匹配到参数,按照位置参数的方式传递给视图函数 视图函数需要定义形参接收变量 1.写在url里面的: # 删除url(r'^del_class/(\d+)',views.del_class ...

  3. 正则表达式的命名分组

    语法格式:(?<name>-) 命名分组也是捕获性分组,它将匹配的字符串捕获到一个组名称或编号名称中,在获得匹配结果后,可通过分组名进行获取. 如下是一个python的命名分组的例子: i ...

  4. python-正则表达式-单字符匹配_多字符匹配_匹配分组_命名分组

    正则表达式 正则表达式定义和作用 正则表达式的定义: 是约束字符串匹配某种形式的规则 正则表达式的作用: 检测某个字符串是否符合规则 提取网页字符串中想要的数据 正则表达式所包含的元素种类 正则表达式 ...

  5. django-反转路径时带上参数-适用于路径中通过命名分组的形式来捕捉参数的情景

    路径中有参数的时候 article_id 就是路径里的参数 问题 如何通过别名来反转得到路径呢 注,路径中有一个动态的参数哦 路径反转带上参数(关键词方式) reverse(别名,kwargs={形参 ...

  6. django-反向解析-命名分组路由的反解

    > 当路由分组以关键词来分组的时候 演练 演练不按套路反解 目标是明确参数的意义 路由 视图反解 reverse("命名空间:别名", kwargs={键:值,键2:值2} ...

  7. Django-安装/分组命名/路由分发

    一.安装Django 命令行窗口: pycharm安装: 二.创建Django项目 命令行窗口创建项目: 访问地址: 表示访问成功 注意如果我们在命令行窗口创建的应用需要我们手动的在django的se ...

  8. 徒手撸出一个类Flask微框架(三)根据业务进行路由分组

    所谓分组就是按照前缀分布映射 如: /product/(\w+)/(?P<id>\d+ # 匹配/product/123123 的前缀 比如什么类别,类别下的什么产品 等, 用reques ...

  9. Python 正则表达式(分组)

    正则表达式分组 分组就是用一对圆括号"()"括起来的正则表达式,匹配出的内容就表示一个分组.从正则表达式的左边开始看,看到的第一个左括号"("表示第一个分组,第 ...

最新文章

  1. CMAKE_C_COMPILER not set
  2. 判断浏览器类型及版本
  3. Ansible:Ansibl项目生产环境快速布局
  4. 《剑指offer》从上往下打印二叉树
  5. 如何在Appscale下发布自己的应用(一)
  6. java多个类调用,java起用多进程调用某个类(是class文件)
  7. Leetcode 刷题笔记(二) —— 数组类型解题方法二:双指针法
  8. 原型和原型链 及 instanceof函数
  9. 空硬盘恢复linux,linux使用foremost恢复文件,硬盘恢复
  10. 松翰单片机数码管c语言,松翰单片机定时中断数码管程序
  11. Echarts实现饼图+饼图中心文字显示
  12. 随着数字化转型加速,Entrust Datacard更名为“Entrust”
  13. 推荐10个堪称神器的学习网站,IT学习网站
  14. [喵咪软件推荐(1)]全球国家信息库
  15. 哈工大计算机系名单,哈工大计算机学部公布拟录取名单,计算机科学与技术仅录29人!...
  16. 解决上网认证系统 IP 更改后 Ubuntu 等 Linux 系统无法上网的问题
  17. 深入了解C语言和C++哪个更难?
  18. 可汗学院为什么选择Go
  19. UG后处理—刀具行程值的输出
  20. PhysicalDrive 只是Device\Harddisk%d\Partition0的符号连接,. 而Device\Harddisk0\Partition0是\Device\Harddisk0\D

热门文章

  1. 大写的服!90 后程序员利用业余时间帮网友鉴定毒蘑菇,拥有百万粉丝成网络大 V...
  2. 地铁线路辅助绘图设计---不做简单的画图师
  3. [LeetCode] Maximum Subarray 最大子数组
  4. Linux使用logrotate来切割日志文件
  5. sass @function,@for,@mixin 的应用
  6. springboot知识
  7. Python学习记录day2
  8. 浏览器拦截弹出窗口 IE Firefox……浏览器
  9. 闭运算—lhMorpClose
  10. IPV6 ripng互联