Python正则表达式使用经典实例


Posted in Python onJune 21, 2016

下面列出Python正则表达式的几种匹配用法,具体内容如下所示:

此外,关于正则的一切http://deerchao.net/tutorials/regex/regex.htm

1.测试正则表达式是否匹配字符串的全部或部分

regex=ur"" #正则表达式
if re.search(regex, subject):
do_something()
else:
do_anotherthing()

2.测试正则表达式是否匹配整个字符串

regex=ur"\Z" #正则表达式末尾以\Z结束
if re.match(regex, subject):
    do_something()
else:
    do_anotherthing()

3.创建一个匹配对象,然后通过该对象获得匹配细节(Create an object with details about how the regex matches (part of) a string)

regex=ur"" #正则表达式
match = re.search(regex, subject)
if match:
    # match start: match.start()
    # match end (exclusive): atch.end()
    # matched text: match.group()
    do_something()
else:
    do_anotherthing()

4.获取正则表达式所匹配的子串(Get the part of a string matched by the regex)

regex=ur"" #正则表达式
match = re.search(regex, subject)
if match:
    result = match.group()
else:
    result = ""

5. 获取捕获组所匹配的子串(Get the part of a string matched by a capturing group)

regex=ur"" #正则表达式
match = re.search(regex, subject)
if match:
    result = match.group(1)
else:
    result = ""

6. 获取有名组所匹配的子串(Get the part of a string matched by a named group)

regex=ur"" #正则表达式
match = re.search(regex, subject)
if match:
result = match.group"groupname")
else:
result = ""

7. 将字符串中所有匹配的子串放入数组中(Get an array of all regex matches in a string)

result = re.findall(regex, subject)

8.遍历所有匹配的子串(Iterate over all matches in a string)

for match in re.finditer(r"<(.*?)\s*.*?/\1>", subject)
    # match start: match.start()
    # match end (exclusive): atch.end()
    # matched text: match.group()

9.通过正则表达式字符串创建一个正则表达式对象(Create an object to use the same regex for many operations)

reobj = re.compile(regex)

10.用法1的正则表达式对象版本(use regex object for if/else branch whether (part of) a string can be matched)

reobj = re.compile(regex)
if reobj.search(subject):
    do_something()
else:
    do_anotherthing()

11.用法2的正则表达式对象版本(use regex object for if/else branch whether a string can be matched entirely)

reobj = re.compile(r"\Z") #正则表达式末尾以\Z 结束
if reobj.match(subject):
    do_something()
else:
    do_anotherthing()

12.创建一个正则表达式对象,然后通过该对象获得匹配细节(Create an object with details about how the regex object matches (part of) a string)

reobj = re.compile(regex)
match = reobj.search(subject)
if match:
    # match start: match.start()
    # match end (exclusive): atch.end()
    # matched text: match.group()
    do_something()
else:
    do_anotherthing()

13.用正则表达式对象获取匹配子串(Use regex object to get the part of a string matched by the regex)

reobj = re.compile(regex)
match = reobj.search(subject)
if match:
    result = match.group()
else:
    result = ""

14.用正则表达式对象获取捕获组所匹配的子串(Use regex object to get the part of a string matched by a capturing group)

reobj = re.compile(regex)
match = reobj.search(subject)
if match:
    result = match.group(1)
else:
    result = ""

15.用正则表达式对象获取有名组所匹配的子串(Use regex object to get the part of a string matched by a named group)

reobj = re.compile(regex)
match = reobj.search(subject)
if match:
    result = match.group("groupname")
else:
    result = ""

16.用正则表达式对象获取所有匹配子串并放入数组(Use regex object to get an array of all regex matches in a string)

reobj = re.compile(regex)
result = reobj.findall(subject)

17.通过正则表达式对象遍历所有匹配子串(Use regex object to iterate over all matches in a string)

reobj = re.compile(regex)
for match in reobj.finditer(subject):
    # match start: match.start()
    # match end (exclusive): match.end()
    # matched text: match.group()

字符串替换

1.替换所有匹配的子串

#用newstring替换subject中所有与正则表达式regex匹配的子串
result = re.sub(regex, newstring, subject)

2.替换所有匹配的子串(使用正则表达式对象)

reobj = re.compile(regex)
result = reobj.sub(newstring, subject)

字符串拆分

1.字符串拆分

result = re.split(regex, subject)

2.字符串拆分(使用正则表示式对象)

reobj = re.compile(regex)
result = reobj.split(subject)
Python 相关文章推荐
python paramiko实现ssh远程访问的方法
Dec 03 Python
Python实现的txt文件去重功能示例
Jul 07 Python
对python3中pathlib库的Path类的使用详解
Oct 14 Python
pycharm运行程序时在Python console窗口中运行的方法
Dec 03 Python
Python 绘制酷炫的三维图步骤详解
Jul 12 Python
如何使用python3获取当前路径及os.path.dirname的使用
Dec 13 Python
tensorflow实现测试时读取任意指定的check point的网络参数
Jan 21 Python
Python networkx包的实现
Feb 14 Python
Python多进程multiprocessing、进程池用法实例分析
Mar 24 Python
python编写softmax函数、交叉熵函数实例
Jun 11 Python
Pandas缺失值2种处理方式代码实例
Jun 13 Python
Keras官方中文文档:性能评估Metrices详解
Jun 15 Python
常见的python正则用法实例讲解
Jun 21 #Python
实例讲解Python的函数闭包使用中应注意的问题
Jun 20 #Python
Python中的数学运算操作符使用进阶
Jun 20 #Python
Python中在for循环中嵌套使用if和else语句的技巧
Jun 20 #Python
解析Python中的生成器及其与迭代器的差异
Jun 20 #Python
Python判断列表是否已排序的各种方法及其性能分析
Jun 20 #Python
Python编程中装饰器的使用示例解析
Jun 20 #Python
You might like
Protoss兵种介绍
2020/03/14 星际争霸
一棵php的类树(支持无限分类)
2006/10/09 PHP
PHP 加密与解密的斗争
2009/04/17 PHP
PHP实现原生态图片上传封装类方法
2016/11/08 PHP
PHP下用Swoole实现Actor并发模型的方法
2019/06/12 PHP
使用composer 安装 laravel框架的方法图文详解
2019/08/02 PHP
JS 自定义函数缺省值的设置方法
2010/05/05 Javascript
javascript:window.open弹出窗口的位置问题
2014/03/18 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
JS实现向表格行添加新单元格的方法
2015/03/30 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
2015/10/28 Javascript
JavaScript类型系统之Object详解
2016/01/07 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
jquery html5 视频播放控制代码
2016/11/06 Javascript
javaScript实现复选框全选反选事件详解
2020/11/20 Javascript
面包屑导航详解
2017/12/07 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
2018/06/22 Javascript
ES6 迭代器与可迭代对象的实现
2019/02/11 Javascript
vue.js购物车添加商品组件的方法
2019/09/17 Javascript
python3.3教程之模拟百度登陆代码分享
2014/01/16 Python
调试Python程序代码的几种方法总结
2015/04/28 Python
Python和C/C++交互的几种方法总结
2017/05/11 Python
Python多线程同步---文件读写控制方法
2019/02/12 Python
Django对数据库进行添加与更新的例子
2019/07/12 Python
python matplotlib绘制三维图的示例
2020/09/24 Python
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
应届大学生的推荐信
2013/11/20 职场文书
公司办公室岗位职责
2014/03/19 职场文书
事业单位鉴定材料
2014/05/25 职场文书
成绩报告单家长评语
2014/12/30 职场文书
2015年医务人员医德医风自我评价
2015/03/03 职场文书
社区重阳节活动总结
2015/03/24 职场文书
成事在人观后感
2015/06/16 职场文书
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL
【DOTA2】半决赛强强对话~ PSG LGD vs EHOME - DPC 2022 CN REGIONAL FINALS WINTER
2022/04/02 DOTA