博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
命名分组(?<name>....)
阅读量:6323 次
发布时间:2019-06-22

本文共 720 字,大约阅读时间需要 2 分钟。

捕获组分为:

  • 普通捕获组(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,表达式如下:

(?
\\d{
4})-(?
(?
\\d{ 2})-(?
\\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

你可能感兴趣的文章
SQL Server各个版本之间的差异
查看>>
如何拆笔记本键盘(组图)
查看>>
lua install
查看>>
海量数据处理 算法总结
查看>>
DNS服务器之主从服务搭建
查看>>
vim编辑器常用操作整理
查看>>
带列表的对话框
查看>>
mysql性能参数查询
查看>>
VirtualBox运行报错Unable to load R3 module
查看>>
GCD的简单使用<一>
查看>>
Java进程的Perm Size突然陡增
查看>>
Python学习之urlib模块和urllib2模块学习
查看>>
Windows消息传递机制详解
查看>>
《C++ if语句书写规范》
查看>>
EBS Form个性化的工作原理
查看>>
VBS中Sendkey键盘对应的码表
查看>>
SpringSecurity3整合CAS实现单点登录
查看>>
Cisco:passive-interface 在各种路由协议下的不同效果
查看>>
ANT打包可执行JAR
查看>>
float情况下使用line-height垂直居中注意的若干问题
查看>>