Python正则表达式使用经典实例


Posted in Python onJune 21, 2016

下面列出Python正则表达式的几种匹配用法,具体内容如下所示:

此外,关于正则的一切http://deerchao.net/tutorials/regex/regex.htm

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中使用urllib2防止302跳转的代码例子
Jul 07 Python
Python爬虫模拟登录带验证码网站
Jan 22 Python
KMP算法精解及其Python版的代码示例
Jun 01 Python
一个基于flask的web应用诞生(1)
Apr 11 Python
Python中字典(dict)合并的四种方法总结
Aug 10 Python
python3下实现搜狗AI API的代码示例
Apr 10 Python
python使用参数对嵌套字典进行取值的方法
Apr 26 Python
Django实现发送邮件功能
Jul 18 Python
详解如何减少python内存的消耗
Aug 09 Python
如何通过Django使用本地css/js文件
Jan 20 Python
Python使用Selenium实现淘宝抢单的流程分析
Jun 23 Python
django rest framework 自定义返回方式
Jul 12 Python
常见的python正则用法实例讲解
Jun 21 #Python
实例讲解Python的函数闭包使用中应注意的问题
Jun 20 #Python
Python中的数学运算操作符使用进阶
Jun 20 #Python
Python中在for循环中嵌套使用if和else语句的技巧
Jun 20 #Python
解析Python中的生成器及其与迭代器的差异
Jun 20 #Python
Python判断列表是否已排序的各种方法及其性能分析
Jun 20 #Python
Python编程中装饰器的使用示例解析
Jun 20 #Python
You might like
Mysql的GROUP_CONCAT()函数使用方法
2008/03/28 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
2014/12/25 PHP
ThinkPHP安装和设置
2015/07/27 PHP
PHP+MySQL实现的简单投票系统实例
2016/02/24 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
laravel 根据不同组织加载不同视图的实现
2019/10/14 PHP
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
js和jquery中循环的退出和继续学习记录
2014/09/06 Javascript
javascript事件冒泡和事件捕获详解
2015/05/26 Javascript
jQuery获取页面元素绝对与相对位置的方法
2015/06/10 Javascript
jquery实现全选、反选、获得所有选中的checkbox
2020/09/13 Javascript
JavaScript function函数种类详解
2016/02/22 Javascript
JavaScript中三种异步上传文件方式
2016/03/06 Javascript
AngularJS中的过滤器filter用法完全解析
2016/04/22 Javascript
jQuery实现底部浮动窗口效果
2016/09/07 Javascript
ionic开发中点击input时键盘自动弹出
2016/12/23 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
vue弹窗插件实战代码
2018/09/08 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
2019/09/03 jQuery
下载糗事百科的内容_python版
2008/12/07 Python
布同 统计英文单词的个数的python代码
2011/03/13 Python
Python 制作糗事百科爬虫实例
2016/09/22 Python
Python中pip更新和三方插件安装说明
2018/07/08 Python
Python 实现打印单词的菱形字符图案
2020/04/12 Python
python开发一款翻译工具
2020/10/10 Python
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
机电工程学生自荐信范文
2013/12/07 职场文书
社区健康教育实施方案
2014/03/18 职场文书
乡村文明行动实施方案
2014/03/29 职场文书
公司建议书怎么写
2014/05/15 职场文书
工厂门卫的岗位职责
2014/07/27 职场文书
党员批评与自我批评(5篇)
2014/09/23 职场文书
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js
Nginx 配置 HTTPS的详细过程
2022/05/30 Servers