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 相关文章推荐
Linux下将Python的Django项目部署到Apache服务器
Dec 24 Python
python通过pip更新所有已安装的包实现方法
May 19 Python
Python爬虫之模拟知乎登录的方法教程
May 25 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
Jan 04 Python
详解python中asyncio模块
Mar 03 Python
python学习之hook钩子的原理和使用
Oct 25 Python
Python开启线程,在函数中开线程的实例
Feb 22 Python
python点击鼠标获取坐标(Graphics)
Aug 10 Python
PyTorch里面的torch.nn.Parameter()详解
Jan 03 Python
Python求解排列中的逆序数个数实例
May 03 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
Jun 28 Python
Django模型验证器介绍与源码分析
Sep 08 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
phpmyadmin config.inc.php配置示例
2013/08/27 PHP
WordPress开发中的get_post_custom()函数使用解析
2016/01/04 PHP
Thinkphp5.0框架视图view的循环标签用法示例
2019/10/12 PHP
php如何获取Http请求
2020/04/30 PHP
让firefox支持IE的一些方法的javascript扩展函数代码
2010/01/02 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
jQuery实现图片信息的浮动显示实例代码
2013/08/28 Javascript
jQuery实现瀑布流的取巧做法分享
2015/01/12 Javascript
javascript实现链接单选效果的方法
2015/05/13 Javascript
Web前端开发工具——bower依赖包管理工具
2016/03/29 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
基于vue2.0实现的级联选择器
2017/06/09 Javascript
JS获取input[file]的值并显示在页面的实现方法
2018/03/09 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
layui动态渲染生成select的option值方法
2019/09/23 Javascript
bootstrap table实现iview固定列的效果实例代码详解
2019/09/30 Javascript
vue 微信扫码登录(自定义样式)
2020/01/06 Javascript
JS实现字体背景跑马灯
2020/01/06 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
基于python的汉字转GBK码实现代码
2012/02/19 Python
Python实现周期性抓取网页内容的方法
2015/11/04 Python
Python进行数据提取的方法总结
2016/08/22 Python
Python3中简单的文件操作及两个简单小实例分享
2017/06/18 Python
浅谈python import引入不同路径下的模块
2017/07/11 Python
对IPython交互模式下的退出方法详解
2019/02/16 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
python实现随机加减法生成器
2020/02/24 Python
Pycharm自带Git实现版本管理的方法步骤
2020/09/18 Python
HTML5中canvas中的beginPath()和closePath()的重要性
2018/08/24 HTML / CSS
美国农场鲜花速递:The Bouqs
2018/07/13 全球购物
护士思想汇报
2014/01/12 职场文书
毕业生如何写自我鉴定
2014/03/15 职场文书
2014年行政部工作总结
2014/11/19 职场文书
秋季运动会开幕词
2015/01/28 职场文书
学生安全责任协议书
2016/03/22 职场文书
Go语言入门exec的基本使用
2022/05/20 Golang