常见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 相关文章推荐
wxpython 学习笔记 第一天
Mar 16 Python
python采集博客中上传的QQ截图文件
Jul 18 Python
python实现机器人行走效果
Jan 29 Python
删除python pandas.DataFrame 的多重index实例
Jun 08 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
Apr 15 Python
对pyqt5中QTabWidget的相关操作详解
Jun 21 Python
Python使用matplotlib绘制三维参数曲线操作示例
Sep 10 Python
python绘制无向图度分布曲线示例
Nov 22 Python
Django单元测试中Fixtures的使用方法
Feb 26 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
Jun 10 Python
django models里数据表插入数据id自增操作
Jul 15 Python
pytorch 梯度NAN异常值的解决方案
Jun 05 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读取RSS(Feed)简单实例
2014/06/12 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
在JavaScript中通过URL传递汉字的方法
2007/04/09 Javascript
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
js实现拖拽效果
2015/02/12 Javascript
JS上传图片前实现图片预览效果的方法
2015/03/02 Javascript
JavaScript中的toUTCString()方法使用详解
2015/06/12 Javascript
JavaScript中的parse()方法使用简介
2015/06/12 Javascript
JavaScript编写简单的计算器
2015/11/25 Javascript
原生js实现autocomplete插件
2016/04/14 Javascript
15款最好的Bootstrap在线编辑器
2016/08/03 Javascript
Vue 短信验证码组件开发详解
2017/02/14 Javascript
js中apply与call简单用法详解
2017/11/06 Javascript
Nuxt.js实战详解
2018/01/18 Javascript
微信小程序实现左右列表联动
2020/05/19 Javascript
mocha的时序规则讲解
2019/02/16 Javascript
JS中的算法与数据结构之集合(Set)实例详解
2019/08/20 Javascript
详解JavaScript作用域、作用域链和闭包的用法
2020/09/03 Javascript
[32:39]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第一场 11.04
2020/11/04 DOTA
wxpython中利用线程防止假死的实现方法
2014/08/11 Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
如何实现删除numpy.array中的行或列
2018/05/08 Python
python3中zip()函数使用详解
2018/06/29 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
2019/09/10 Python
python实现感知机模型的示例
2020/09/30 Python
幼师自我鉴定范文
2013/10/01 职场文书
成教毕业生自我鉴定
2013/10/23 职场文书
外企办公室竞聘演讲稿
2013/12/29 职场文书
护理专业优质毕业生自荐书
2014/01/31 职场文书
表彰大会策划方案
2014/05/13 职场文书
中华魂放飞梦想演讲稿
2014/08/26 职场文书
个人查摆问题整改措施
2014/10/04 职场文书
乡镇党员群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
初中政治教学工作总结
2015/08/13 职场文书
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis
flex布局中使用flex-wrap实现换行的项目实践
2022/06/21 HTML / CSS