常见python正则用法的简单实例


Posted in Python onJune 21, 2016

下面列出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.创建一个匹配对象,然后通过该对象获得匹配细节(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 相关文章推荐
python 解析html之BeautifulSoup
Jul 07 Python
Python中输出ASCII大文字、艺术字、字符字小技巧
Apr 28 Python
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
Jul 01 Python
利用django如何解析用户上传的excel文件
Jul 24 Python
python编程培训 python培训靠谱吗
Jan 17 Python
Python的iOS自动化打包实例代码
Nov 22 Python
django开发post接口简单案例,获取参数值的方法
Dec 11 Python
python 读取鼠标点击坐标的实例
Dec 29 Python
基于Python实现剪切板实时监控方法解析
Sep 11 Python
pytorch中的自定义反向传播,求导实例
Jan 06 Python
Pycharm 安装 idea VIM插件的图文教程详解
Feb 21 Python
python基础学习之生成器与文件系统知识总结
May 25 Python
小议Python中自定义函数的可变参数的使用及注意点
Jun 21 #Python
简单讲解Python编程中namedtuple类的用法
Jun 21 #Python
Python编程中实现迭代器的一些技巧小结
Jun 21 #Python
Centos Python2 升级到Python3的简单实现
Jun 21 #Python
Python的Django框架中forms表单类的使用方法详解
Jun 21 #Python
Python正则表达式使用经典实例
Jun 21 #Python
常见的python正则用法实例讲解
Jun 21 #Python
You might like
PHP编码规范的深入探讨
2013/06/06 PHP
PHP中的多种加密技术及代码示例解析
2016/10/20 PHP
PHP实现合并两个排序链表的方法
2018/01/19 PHP
PHP ADODB生成下拉列表框功能示例
2018/05/29 PHP
PHP实现图片压缩
2020/09/09 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
一个字符串反转函数可实现字符串倒序
2014/09/15 Javascript
js脚本分页代码分享(7种样式)
2015/08/19 Javascript
JavaScript模块化开发之SeaJS
2015/12/13 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
2016/06/17 Javascript
javascript动画之模拟拖拽效果篇
2016/09/26 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
nodejs中Express与Koa2对比分析
2018/02/06 NodeJs
vue 组件 全局注册和局部注册的实现
2018/02/28 Javascript
Vue中jsx不完全应用指南小结
2019/11/01 Javascript
Vue 实现简易多行滚动&quot;弹幕&quot;效果
2020/01/02 Javascript
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
Python直接赋值、浅拷贝与深度拷贝实例分析
2019/06/18 Python
总结html5自定义属性有哪些
2020/04/01 HTML / CSS
Conforama西班牙:您的家具、装饰和电器商店
2020/02/21 全球购物
联想智利官方网站:Lenovo Chile
2020/06/03 全球购物
描述RIP和OSPF区别以及特点
2015/01/17 面试题
《登鹳雀楼》教学反思
2014/04/09 职场文书
委托书格式
2014/08/01 职场文书
学习张丽丽心得体会
2014/09/03 职场文书
2014年内勤工作总结
2014/11/24 职场文书
2014小学语文教师个人工作总结
2014/12/03 职场文书
2016廉洁从政心得体会
2016/01/19 职场文书
JS Object构造函数之Object.freeze
2021/04/28 Javascript
Python将CSV文件转化为HTML文件的操作方法
2021/06/30 Python
python实现Nao机器人的单目测距
2021/09/04 Python
MySQL 如何限制一张表的记录数
2021/09/14 MySQL
继承Win10缺点!教你关闭Win11烦人的网络搜索
2021/11/23 数码科技
pandas时间序列之pd.to_datetime()的实现
2022/06/16 Python