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实现查询IP地址所在地
Mar 29 Python
Python中函数参数设置及使用的学习笔记
May 03 Python
python中itertools模块zip_longest函数详解
Jun 12 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
Jun 26 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
Jan 04 Python
python使用Plotly绘图工具绘制气泡图
Apr 01 Python
Python登录系统界面实现详解
Jun 25 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
Jun 26 Python
使用Pandas将inf, nan转化成特定的值
Dec 19 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
Mar 16 Python
Python存储读取HDF5文件代码解析
Nov 25 Python
在Django中使用MQTT的方法
May 10 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中HTTP方式下的Gzip压缩传输方法举偶
2007/02/15 PHP
用php实现选择排序的解决方法
2013/05/04 PHP
php截取视频指定帧为图片
2016/05/16 PHP
深入了解PHP中的Array数组和foreach
2016/11/06 PHP
javascript中的对象和数组的应用技巧
2007/01/07 Javascript
window.ActiveXObject使用说明
2010/11/08 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
2012/05/23 Javascript
编程语言JavaScript简介
2014/10/16 Javascript
判断字符串的长度(优化版)中文占两个字符
2014/10/30 Javascript
JQuery实现样式设置、追加、移除与切换的方法
2015/06/11 Javascript
jQuery实例—选项卡的简单实现(js源码和jQuery)
2016/06/14 Javascript
webpack external模块的具体使用
2018/03/10 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
2018/08/20 Javascript
微信小程序实现日历功能
2018/11/27 Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
2019/01/15 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
2019/03/04 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
Vue 实现前端权限控制的示例代码
2019/07/09 Javascript
JavaScript动画实例之粒子文本的实现方法详解
2020/07/28 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
2020/11/18 jQuery
[22:07]DOTA2-DPC中国联赛 正赛 iG vs Magma 选手采访
2021/03/11 DOTA
在Python中操作文件之seek()方法的使用教程
2015/05/24 Python
实例讲解Python设计模式编程之工厂方法模式的使用
2016/03/02 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
Python 串口读写的实现方法
2019/06/12 Python
幼儿园消防安全制度
2014/01/26 职场文书
人力资源专员岗位职责
2014/01/30 职场文书
创业计划书如何编写
2014/02/06 职场文书
个人对照检查材料
2014/02/12 职场文书
售后服务承诺书
2014/03/26 职场文书
学校领导班子四风对照检查材料
2014/09/27 职场文书
就业协议书盖章的注意事项
2014/09/28 职场文书
2014入党积极分子批评与自我批评思想报告
2014/10/06 职场文书
2016年第16个全民国防教育日宣传活动总结
2016/04/05 职场文书
python中super()函数的理解与基本使用
2021/08/30 Python
springboot + mongodb 通过经纬度坐标匹配平面区域的方法
2021/11/01 MongoDB