Python中正则表达式的用法实例汇总


Posted in Python onAugust 18, 2014

正则表达式是Python程序设计中非常实用的功能,本文就常用的正则表达式做一汇总,供大家参考之用。具体如下:

一、字符串替换

1.替换所有匹配的子串

用newstring替换subject中所有与正则表达式regex匹配的子串

result, number = re.subn(regex, newstring, subject)

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

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

二、字符串拆分

1.字符串拆分

result = re.split(regex, subject)

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

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

三、匹配

下面列出Python正则表达式的几种匹配用法:

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. 创建一个匹配对象,然后通过该对象获得匹配细节

regex=ur"..." #正则表达式
match = re.search(regex, subject)
if match:
  # match start: match.start()
  # match end (exclusive): match.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): match.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): match.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()

感兴趣的读者可以动手调试一下本文实例代码,相信会有新的收获。

Python 相关文章推荐
基于python进行桶排序与基数排序的总结
May 29 Python
python实现人人自动回复、抢沙发功能
Jun 08 Python
使用python的pandas库读取csv文件保存至mysql数据库
Aug 20 Python
Django REST framework 视图和路由详解
Jul 19 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
Aug 09 Python
python KNN算法实现鸢尾花数据集分类
Oct 24 Python
tensorflow将图片保存为tfrecord和tfrecord的读取方式
Feb 17 Python
python中前缀运算符 *和 **的用法示例详解
May 28 Python
Pycharm调试程序技巧小结
Aug 08 Python
SpringBoot首页设置解析(推荐)
Feb 11 Python
pytorch实现手写数字图片识别
May 20 Python
如何使用PyCharm及常用配置详解
Jun 03 Python
python中enumerate的用法实例解析
Aug 18 #Python
Python采用raw_input读取输入值的方法
Aug 18 #Python
Python中Collection的使用小技巧
Aug 18 #Python
Python实现3行代码解简单的一元一次方程
Aug 18 #Python
Python统计列表中的重复项出现的次数的方法
Aug 18 #Python
Python中无限元素列表的实现方法
Aug 18 #Python
Python中实现字符串类型与字典类型相互转换的方法
Aug 18 #Python
You might like
PHP IF ELSE简化/三元一次式的使用
2011/08/22 PHP
WordPress中创建用户角色的相关PHP函数使用详解
2015/12/25 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
2017/06/07 PHP
浅谈PHP5.6 与 PHP7.0 区别
2019/10/09 PHP
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
扩展jQuery 键盘事件的几个基本方法
2009/10/30 Javascript
Extjs在exlipse中设置自动提示的方法
2010/04/07 Javascript
safari,opera嵌入iframe页面cookie读取问题解决方法
2010/06/23 Javascript
jQuery EasyUI API 中文文档 - ComboGrid 组合表格
2011/10/13 Javascript
Javascript实现鼠标右键特色菜单
2015/08/04 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
2015/11/04 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
jQuery鼠标事件总结
2016/10/13 Javascript
js基础之DOM中document对象的常用属性方法详解
2016/10/28 Javascript
JS实现的表头列头固定页面功能示例
2017/01/10 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
全面总结Javascript对数组对象的各种操作
2017/01/22 Javascript
微信小程序自定义多选事件的实现代码
2018/05/17 Javascript
Angular8 实现table表格表头固定效果
2020/01/03 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
详解js中的原型,原型对象,原型链
2020/07/16 Javascript
详解设计模式中的工厂方法模式在Python程序中的运用
2016/03/02 Python
python安装mysql-python简明笔记(ubuntu环境)
2016/06/25 Python
Python栈算法的实现与简单应用示例
2017/11/01 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
2019/08/27 Python
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
李维斯法国官网:Levi’s法国
2019/07/13 全球购物
大学生职业生涯规划书模版
2013/12/30 职场文书
酒店销售主管岗位职责
2014/01/04 职场文书
关于逃课的检讨书
2014/01/23 职场文书
史学专业毕业生求职信
2014/05/09 职场文书
高考励志标语
2014/06/05 职场文书
2014高中生入党思想汇报范文
2014/09/13 职场文书
2014年医院工作总结
2014/11/20 职场文书
react中props 的使用及进行限制的方法
2021/04/28 Javascript
python实现进度条的多种实现
2021/04/29 Python