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操作mysql数据库
Mar 05 Python
基于python3 类的属性、方法、封装、继承实例讲解
Sep 19 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
Nov 14 Python
为什么Python中没有"a++"这种写法
Nov 27 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
Feb 19 Python
Python多项式回归的实现方法
Mar 11 Python
基于python if 判断选择结构的实例详解
May 06 Python
python实现抽奖小程序
Apr 15 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
Aug 07 Python
基于python plotly交互式图表大全
Dec 07 Python
Django调用百度AI接口实现人脸注册登录代码实例
Apr 23 Python
python中二分查找法的实现方法
Dec 06 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 zlib压缩和解压缩swf文件的代码
2008/12/30 PHP
PHP中变量引用与变量销毁机制分析
2014/11/15 PHP
yii2控制器Controller Ajax操作示例
2016/07/23 PHP
浅谈PHP中的数据传输CURL
2016/09/06 PHP
Laravel中如何增加自定义全局函数详解
2017/05/09 PHP
PHP sdk实现在线打包代码示例
2020/12/09 PHP
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
写自已的js类库需要的核心代码
2012/07/16 Javascript
Function.prototype.bind用法示例
2013/09/16 Javascript
js时间戳格式化成日期格式的多种方法
2013/11/11 Javascript
javascript动态判断html元素并执行不同的操作
2014/06/16 Javascript
node.js中的fs.utimes方法使用说明
2014/12/15 Javascript
node.js中的fs.fchown方法使用说明
2014/12/16 Javascript
js倒计时简单实现方法
2015/12/17 Javascript
用nodejs的实现原理和搭建服务器(动态)
2016/08/10 NodeJs
Bootstrap表格使用方法详解
2017/02/17 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
2017/03/21 Javascript
vue项目如何刷新当前页面的方法
2018/05/18 Javascript
详解如何理解vue的key属性
2019/04/14 Javascript
Vuex的热更替如何实现
2020/06/05 Javascript
[53:52]OG vs EG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
[00:14]PWL:老朋友Mushi拍VLOG与中国玩家问好
2020/11/04 DOTA
python通过文件头判断文件类型
2015/10/30 Python
django admin 后台实现三级联动的示例代码
2018/06/22 Python
在python中使用requests 模拟浏览器发送请求数据的方法
2018/12/26 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
2019/06/19 Python
python 接口实现 供第三方调用的例子
2019/08/13 Python
python反转列表的三种方式解析
2019/11/08 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
2020/08/04 Python
python中字符串的编码与解码详析
2020/12/03 Python
python 制作磁力搜索工具
2021/03/04 Python
英国运动服、设备及配件网站:DW Sports
2019/12/04 全球购物
岗位明星事迹材料
2014/05/18 职场文书
文明家庭事迹材料
2014/12/20 职场文书
2015年端午节活动总结
2015/02/11 职场文书
MySQL中的全表扫描和索引树扫描
2022/05/15 MySQL