Python中正则表达式的用法总结


Posted in Python onFebruary 22, 2019

正则表达式很神奇啊

# -*- coding:utf-8 -*-
import re
def print_match_res(res):
  """打印匹配对象内容"""
  if res is not None:
    print(res.group())
  else:
    print(None)
# 两种匹配方式:
pattern="[A-Z][a-z]+"
# 一、使用re模块函数进行匹配
res=re.match(pattern,"Tom is a good boy")     # 匹配,返回匹配对象
print(type(res))
print(res.group())
# 二、使用预编译后的正则表达式对象的方法进行匹配
obj_pattern=re.compile(pattern)   # 预编译,返回正则表达式对象
print(type(obj_pattern))
res=obj_pattern.match("Tom is a good boy")    # 匹配,返回匹配对象
print(type(res))
print(res.group())
# 匹配对象的group()和groups()方法
pattern="\d{3}-\d{5}"
obj_pattern=re.compile(pattern)
res=obj_pattern.search("家庭电话:000-88886")
print(res.group())   # 返回整个匹配或特定子组
print(res.groups())   # 返回包含全部子组的元组
# match():从起始部分开始匹配,如果成功,返回匹配对象;失败,返回None。只匹配一次
pattern="my"
# res=re.compile(pattern).match("my name is li")
res=re.match(pattern,"my name is li")
print_match_res(res)
# search(): 从任意位置开始匹配,如果成功,返回匹配对象;失败,返回None。只匹配一次
pattern="my"
# res=re.compile(pattern).search("it's my dog")
res=re.search(pattern,"my name is li")
print_match_res(res)
# 查找全部
# findall(),finditer()
res=re.findall(r"th\w+","This and that",re.I)
print(res)
res=re.finditer(r"th\w+","This and that",re.I)
print(res)
print(next(res).group(),next(res).group())
# 替换
# sub(),subn()
res=re.sub("funny","fool","You are so funny")
print(res)
res=re.subn("funny","fool","You are so funny")
print(res)
# 分割
# splite()
res=re.split("\.","Mr.Smith")
print(res)
print("#"*50)
# 择一匹配符号 a|b
pattern="I|You|She"
res=re.compile(pattern,flags=re.IGNORECASE).match("i love you")
print_match_res(res)
res=re.compile(pattern,flags=re.I).search("who love you")
print_match_res(res)
# 匹配任意单个字符 .
pattern="w{3,}\..+\.com"
res=re.match(pattern,"wwww.google.com/index.html",re.I)
print_match_res(res)
# 字符集 [abc] [a-z0-9]
pattern="[A-Za-z0-9_]*\."
res=re.match(pattern,"Python3.?")
print_match_res(res)
# 特殊字符 \d \w \s \b \\
# 重复 + ? * {N,} {N,M}
# 分组 (...)
pattern="\w+@(\w{1,10}\.)*([a-z]*)"
res=re.match(pattern,"li@gmail.com")
print_match_res(res)
res=re.match(pattern,"li@qq.vip.org")
print_match_res(res)
print(res.group(0),res.group(1),res.group(2),sep="\t")
print(res.groups())
# 匹配字符串的起始和结尾,单词边界 ^a z$ \A \Z \b \B
pattern=r"^the"
# pattern=r"\Athe"
res=re.search(pattern,"The end of the world")
print_match_res(res)
res=re.search(pattern,"they smile")
print_match_res(res)
pattern=r"cry$"
# pattern=r"cry\Z"
res=re.search(pattern,"they cry")
print_match_res(res)
res=re.search(r"\bthe","bit the dog")
print_match_res(res)
res=re.search(r"\Bhe","bit the dog")
print_match_res(res)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
使用Python编写提取日志中的中文的脚本的方法
Apr 30 Python
Python遍历文件夹和读写文件的实现代码
Aug 28 Python
轻量级的Web框架Flask 中模块化应用的实现
Sep 11 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
Sep 22 Python
python将一组数分成每3个一组的实例
Nov 14 Python
Django ImageFiled上传照片并显示的方法
Jul 28 Python
解决numpy矩阵相减出现的负值自动转正值的问题
Jun 03 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
Jun 15 Python
Python Tkinter图形工具使用方法及实例解析
Jun 15 Python
Python如何实现自带HTTP文件传输服务
Jul 08 Python
Python 代码调试技巧示例代码
Aug 11 Python
手把手教你将Flask应用封装成Docker服务的实现
Aug 19 Python
python ddt数据驱动最简实例代码
Feb 22 #Python
Flask框架踩坑之ajax跨域请求实现
Feb 22 #Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
Feb 22 #Python
pandas修改DataFrame列名的实现方法
Feb 22 #Python
pyhanlp安装介绍和简单应用
Feb 22 #Python
Python3.7 dataclass使用指南小结
Feb 22 #Python
Python文件读写常见用法总结
Feb 22 #Python
You might like
PHP-MySQL教程归纳总结
2008/06/07 PHP
PHP获取表单textarea数据中的换行问题
2010/09/10 PHP
php安装dblib扩展,连接mssql的具体步骤
2017/03/02 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
Javascript 学习书 推荐
2009/06/13 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
jquery获得页面元素的坐标值实现思路及代码
2013/04/15 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
2015/11/16 Javascript
轻松实现js选项卡切换效果
2016/09/24 Javascript
简单理解vue中el、template、replace元素
2016/10/27 Javascript
深入理解Angular4中的依赖注入
2017/06/07 Javascript
详解wow.js中各种特效对应的类名
2017/09/13 Javascript
JavaScript中字符串的常用操作方法及特殊字符
2018/03/18 Javascript
[01:13:59]LGD vs Mineski Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
python 定义给定初值或长度的list方法
2018/06/23 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
2019/01/05 Python
Python面向对象程序设计示例小结
2019/01/30 Python
python利用7z批量解压rar的实现
2019/08/07 Python
Python generator生成器和yield表达式详解
2019/08/08 Python
Django Admin后台添加数据库视图过程解析
2020/04/01 Python
简述 Python 的类和对象
2020/08/21 Python
容易被忽略的Python内置类型
2020/09/03 Python
Django和Ueditor自定义存储上传文件的文件名
2021/02/25 Python
使用CSS3来代替JS实现交互
2017/08/10 HTML / CSS
Canvas多边形绘制的实现方法
2019/08/05 HTML / CSS
移动端HTML5开发神器之vconsole详解
2020/12/15 HTML / CSS
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
应届生会计求职信
2013/11/11 职场文书
红头文件任命书范本
2014/06/05 职场文书
爬山的活动方案
2014/08/16 职场文书
2015年小学生自我评价范文
2015/03/03 职场文书
投标售后服务承诺书
2015/04/29 职场文书
创业计划书之水果店
2019/07/18 职场文书
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/06 PostgreSQL