python里使用正则表达式的组匹配自引用
2017-11-14 17:50
716 查看
在前面学习过组的匹配,也就是一个括号包含就叫做一个组。在一个复杂一点的正则表达式里,比如像(1)(2)(3)这样,就匹配三组,如果想在这个表达式里引用前面匹配的组,怎么办呢?其实最简单的方式是通过组号来引用,比如像(1)(2)(3)——\1。使用“\num”的语法来自引用,如下例子:
结果输出如下:
Candidate: First Last <first.last@example.com>
Match name : First Last
Match email: first.last@example.com
Candidate: Different Name <first.last@example.com>
No match
Candidate: First Middle Last <first.last@example.com>
Match name : First Last
Match email: first.last@example.com
Candidate: First M. Last <first.last@example.com>
Match name : First Last
Match email: first.last@example.com
在这个例子里,就引用了第1组first name和第4组last name的值,实现了前后不一致的EMAIL的姓名,就丢掉它。
深入浅出Numpy
五子棋游戏开发
http://edu.csdn.net/course/detail/5487
#python 3.6 #蔡军生 #http://blog.csdn.net/caimouse/article/details/51749579 # import re address = re.compile( r''' # The regular name (\w+) # first name \s+ (([\w.]+)\s+)? # optional middle name or initial (\w+) # last name \s+ < # The address: first_name.last_name@domain.tld (?P<email> \1 # first name \. \4 # last name @ ([\w\d.]+\.)+ # domain name prefix (com|org|edu) # limit the allowed top-level domains ) > ''', re.VERBOSE | re.IGNORECASE) candidates = [ u'First Last <first.last@example.com>', u'Different Name <first.last@example.com>', u'First Middle Last <first.last@example.com>', u'First M. Last <first.last@example.com>', ] for candidate in candidates: print('Candidate:', candidate) match = address.search(candidate) if match: print(' Match name :', match.group(1), match.group(4)) print(' Match email:', match.group(5)) else: print(' No match')
结果输出如下:
Candidate: First Last <first.last@example.com>
Match name : First Last
Match email: first.last@example.com
Candidate: Different Name <first.last@example.com>
No match
Candidate: First Middle Last <first.last@example.com>
Match name : First Last
Match email: first.last@example.com
Candidate: First M. Last <first.last@example.com>
Match name : First Last
Match email: first.last@example.com
在这个例子里,就引用了第1组first name和第4组last name的值,实现了前后不一致的EMAIL的姓名,就丢掉它。
深入浅出Numpy
http://edu.csdn.net/course/detail/6149
Python游戏开发入门
http://edu.csdn.net/course/detail/5690你也能动手修改C编译器
http://edu.csdn.net/course/detail/5582纸牌游戏开发
http://edu.csdn.net/course/detail/5538
五子棋游戏开发
http://edu.csdn.net/course/detail/5487
RPG游戏从入门到精通
http://edu.csdn.net/course/detail/5246
WiX安装工具的使用
http://edu.csdn.net/course/detail/5207
俄罗斯方块游戏开发
http://edu.csdn.net/course/detail/5110
boost库入门基础
http://edu.csdn.net/course/detail/5029
Arduino入门基础
http://edu.csdn.net/course/detail/4931
Unity5.x游戏基础入门
http://edu.csdn.net/course/detail/4810
TensorFlow API攻略
http://edu.csdn.net/course/detail/4495
TensorFlow入门基本教程
http://edu.csdn.net/course/detail/4369
C++标准模板库从入门到精通
http://edu.csdn.net/course/detail/3324
跟老菜鸟学C++
http://edu.csdn.net/course/detail/2901
跟老菜鸟学python
http://edu.csdn.net/course/detail/2592
在VC2015里学会使用tinyxml库
http://edu.csdn.net/course/detail/2590
在Windows下SVN的版本管理与实战
http://edu.csdn.net/course/detail/2579
Visual Studio 2015开发C++程序的基本使用
http://edu.csdn.net/course/detail/2570
在VC2015里使用protobuf协议
http://edu.csdn.net/course/detail/2582
在VC2015里学会使用MySQL数据库
http://edu.csdn.net/course/detail/2672
相关文章推荐
- python里使用正则表达式的组匹配通过名称自引用
- python里使用正则表达式的组匹配是否成功之后再自引用
- python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL
- python里使用正则表达式的边界符进行匹配
- Python中使用中文正则表达式匹配指定的中文字符串
- python里使用正则表达式来替换匹配成功的组名
- 在Python中使用正则表达式同时匹配邮箱和电话并进行简单的分类
- 详解python里使用正则表达式的全匹配功能
- Python使用中文正则表达式匹配指定中文字符串的方法示例
- python使用正则表达式替换匹配成功的组
- 在Python中使用正则表达式同时匹配邮箱和电话并进行简单的分类
- Python: 字符串搜索和匹配,re.compile() 编译正则表达式字符串,然后使用match() , findall() 或者finditer() 等方法
- js中使用正则表达式(五)特殊字符、匹配模式、捕获组与反向引用介绍
- python使用正则表达式替换匹配成功的组并输出替换的次数
- python里使用正则表达式的词组匹配功能
- python里使用正则表达式的全匹配功能
- 使用Python正则表达式RE从CSDN博客源代码中匹配出博客信息
- python里使用正则表达式来替换匹配成功的组
- python使用正则表达式匹配字符串开头并打印示例
- python里使用正则表达式来替换匹配成功的组并输出替换的次数