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备份文件以及mysql数据库的脚本代码
Jun 10 Python
Python常用模块介绍
Nov 21 Python
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
Mar 30 Python
flask中使用蓝图将路由分开写在不同文件实例解析
Jan 19 Python
Python装饰器用法实例总结
Feb 07 Python
python实现最长公共子序列
May 22 Python
python实现爬取图书封面
Jul 05 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
Feb 13 Python
python3 求约数的实例
Dec 05 Python
python 普通克里金(Kriging)法的实现
Dec 19 Python
Selenium自动化测试工具使用方法汇总
Jun 12 Python
基于Python爬取素材网站音频文件
Oct 21 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自动判断字符集并转码的详解
2013/06/26 PHP
php实现登陆模块功能示例
2016/10/20 PHP
PHP Header失效的原因分析及解决方法
2016/11/16 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.2 0
2008/03/22 Javascript
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
jQuery代码优化 事件委托篇
2011/11/01 Javascript
jQuery封装的屏幕居中提示信息代码
2016/06/08 Javascript
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
2017/12/22 Javascript
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
JQuery选中select组件被选中的值方法
2018/03/08 jQuery
node.js到底要不要加分号浅析
2018/07/11 Javascript
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
vue 获取url里参数的两种方法小结
2020/11/12 Javascript
五句话帮你轻松搞定js原型链
2020/12/09 Javascript
vue.js实现点击图标放大离开时缩小的代码
2021/01/27 Vue.js
Python实现把utf-8格式的文件转换成gbk格式的文件
2015/01/22 Python
使用Python读取安卓手机的屏幕分辨率方法
2018/03/31 Python
python中使用print输出中文的方法
2018/07/16 Python
python接口自动化(十六)--参数关联接口后传(详解)
2019/04/16 Python
Python+Selenium使用Page Object实现页面自动化测试
2019/07/14 Python
pytorch 可视化feature map的示例代码
2019/08/20 Python
浅谈python中频繁的print到底能浪费多长时间
2020/02/21 Python
Django-xadmin+rule对象级权限的实现方式
2020/03/30 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
css3强大的动画效果animate使用说明及浏览器兼容介绍
2013/01/09 HTML / CSS
美国著名珠宝品牌之一:Jared The Galleria Of Jewelry
2016/10/01 全球购物
经典演讲稿范文
2013/12/30 职场文书
装修致歉信
2014/01/15 职场文书
售后服务承诺书
2014/03/26 职场文书
幼儿园体操比赛口号
2015/12/25 职场文书
雄兵连:第三季先行图公开,天使恶魔联合,银河之力的新力量
2021/06/11 国漫
cypress测试本地web应用
2022/06/01 Javascript