常见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 XML RPC服务器端和客户端实例
Nov 22 Python
Python中decorator使用实例
Apr 14 Python
Numpy中转置transpose、T和swapaxes的实例讲解
Apr 17 Python
python 按不同维度求和,最值,均值的实例
Jun 28 Python
python 实现语音聊天机器人的示例代码
Dec 02 Python
用Python写一个模拟qq聊天小程序的代码实例
Mar 06 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
Apr 01 Python
Python函数装饰器原理与用法详解
Aug 16 Python
python线程中的同步问题及解决方法
Aug 29 Python
Pandas实现dataframe和np.array的相互转换
Nov 30 Python
python中round函数如何使用
Jun 19 Python
利用python清除移动硬盘中的临时文件
Oct 28 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
zend framework配置操作数据库实例分析
2012/12/06 PHP
解析php中array_merge与array+array的区别
2013/06/21 PHP
怎么判断js脚本加载完成
2014/02/28 Javascript
处理文本部分内容的TextRange对象应用实例
2014/07/29 Javascript
JavaScript不使用prototype和new实现继承机制
2014/12/29 Javascript
AngularJS基础知识笔记之表格
2015/05/10 Javascript
jQuery的end()方法使用详解
2015/07/15 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
Node.js实用代码段之获取Buffer对象字节长度
2016/03/17 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
2016/10/31 Javascript
jQuery的事件预绑定
2016/12/05 Javascript
JS碰撞运动实现方法详解
2016/12/15 Javascript
JavaScript数组复制详解
2017/02/02 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
2017/02/06 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
2017/05/03 Javascript
详解从NodeJS搭建中间层再谈前后端分离
2018/11/13 NodeJs
Node.js的进程管理的深入理解
2019/01/09 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
2020/06/12 Javascript
vue相同路由跳转强制刷新该路由组件操作
2020/08/05 Javascript
解决Element中el-date-picker组件不回填的情况
2020/11/07 Javascript
详解Vue的mixin策略
2020/11/19 Vue.js
Python的高级Git库 Gittle
2014/09/22 Python
介绍Python中的__future__模块
2015/04/27 Python
Python使用dis模块把Python反编译为字节码的用法详解
2016/06/14 Python
使用Python写一个量化股票提醒系统
2018/08/22 Python
解决pycharm无法识别本地site-packages的问题
2018/10/13 Python
Tensorflow 实现释放内存
2020/02/03 Python
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
素食餐饮项目创业计划书
2014/02/02 职场文书
大学生创业计划书
2014/08/14 职场文书
党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
学习保证书
2015/01/17 职场文书
会议主持人开场白台词
2015/05/28 职场文书
《合作意向书》怎么写?
2019/08/20 职场文书
golang slice元素去重操作
2021/04/30 Golang
opencv 分类白天与夜景视频的方法
2021/06/05 Python