常见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 相关文章推荐
django开发之settings.py中变量的全局引用详解
Mar 29 Python
Python中str.join()简单用法示例
Mar 20 Python
python的dataframe转换为多维矩阵的方法
Apr 11 Python
Python退火算法在高次方程的应用
Jul 26 Python
使用python3批量下载rbsp数据的示例代码
Dec 20 Python
tensorflow自定义激活函数实例
Feb 04 Python
使用 Python 遍历目录树的方法
Feb 29 Python
Jupyter notebook 启动闪退问题的解决
Apr 13 Python
解决python执行较大excel文件openpyxl慢问题
May 15 Python
浅谈PyTorch中in-place operation的含义
Jun 27 Python
关于python tushare Tkinter构建的简单股票可视化查询系统(Beta v0.13)
Oct 19 Python
Qt自定义Plot实现曲线绘制的详细过程
Nov 02 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
E路文章系统PHP
2006/12/11 PHP
php smarty函数扩展
2010/03/15 PHP
PHP入门经历和学习过程分享
2014/04/11 PHP
php用ini_get获取php.ini里变量值的方法
2015/03/04 PHP
php使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
基于Jquery实现表格动态分页实现代码
2011/06/21 Javascript
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
2013/06/17 Javascript
js和as的稳定传值问题解决
2013/07/14 Javascript
js 控制图片大小核心讲解
2013/10/09 Javascript
整理的比较全的event对像在ie与firefox浏览器中的区别
2013/11/25 Javascript
javascript函数声明和函数表达式区别分析
2014/12/02 Javascript
在JavaScript中call()与apply()区别
2016/01/22 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
Bootstrap Table的使用总结
2016/10/08 Javascript
vue.js表格分页示例
2016/10/18 Javascript
基于javascript的Form表单验证
2016/12/29 Javascript
JavaScript原生编写《飞机大战坦克》游戏完整实例
2017/01/04 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
JS实现列表页面隔行变色效果
2017/03/25 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
Centos6.8下Node.js安装教程
2017/05/12 Javascript
jsonp跨域请求详解
2017/07/13 Javascript
JS实现前端缓存的方法
2017/09/21 Javascript
JS实现随机生成10个手机号的方法示例
2018/12/07 Javascript
深入理解webpack process.env.NODE_ENV配置
2020/02/23 Javascript
JavaScript点击按钮生成4位随机验证码
2021/01/28 Javascript
获取python文件扩展名和文件名方法
2018/02/02 Python
10个Python面试常问的问题(小结)
2019/11/20 Python
Python爬取阿拉丁统计信息过程图解
2020/05/12 Python
Html5 webview元素定位工具的实现
2020/08/07 HTML / CSS
吉力贝官方网站:Jelly Belly
2019/03/11 全球购物
JSF面试题:Jsf中导航的标签是什么
2013/04/20 面试题
土木工程个人自荐信范文
2013/11/30 职场文书
中学总务处工作总结
2015/08/12 职场文书
python实现简单石头剪刀布游戏
2021/10/24 Python