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操作摄像头截图实现远程监控的例子
Mar 25 Python
Python遍历文件夹和读写文件的实现方法
May 10 Python
django项目运行因中文而乱码报错的几种情况解决
Nov 07 Python
Python输出各行命令详解
Feb 01 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
May 17 Python
python过滤中英文标点符号的实例代码
Jul 15 Python
python查看数据类型的方法
Oct 12 Python
python分别打包出32位和64位应用程序
Feb 18 Python
如何基于python3和Vue实现AES数据加密
Mar 27 Python
python3.5的包存放的具体路径
Aug 16 Python
Python字符串对齐方法使用(ljust()、rjust()和center())
Apr 26 Python
Python使用DFA算法过滤内容敏感词
Apr 22 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的list()的一步操作给一组变量进行赋值的使用
2011/05/18 PHP
PHP魔术引号所带来的安全问题分析
2014/07/15 PHP
屏蔽PHP默认设置中的Notice警告的方法
2016/05/20 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
2019/02/08 PHP
使用PHP+JQuery+Ajax分页的实现
2013/04/23 Javascript
jquery实现table鼠标经过变色代码
2013/09/25 Javascript
div模拟选择框示例代码
2013/11/03 Javascript
javascript 密码框防止用户粘贴和复制的实现代码
2014/02/17 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
2014/10/20 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
Knockout自定义绑定创建方法
2015/12/26 Javascript
jQuery div拖拽用法实例
2016/01/14 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
node文字生成图片的示例代码
2017/10/26 Javascript
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
Vue实现固定定位图标滑动隐藏效果
2019/05/30 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
[02:02:38]VG vs Mineski Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
[01:08:33]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Django 如何获取前端发送的头文件详解(推荐)
2017/08/15 Python
python特性语法之遍历、公共方法、引用
2018/08/08 Python
在Python文件中指定Python解释器的方法
2019/02/18 Python
PyQt+socket实现远程操作服务器的方法示例
2019/08/22 Python
Python算法中的时间复杂度问题
2019/11/19 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
Python基于Webhook实现github自动化部署
2020/11/28 Python
英国最大的高品质珠宝和手表专家:Goldsmiths
2017/03/11 全球购物
美工的岗位职责
2013/11/14 职场文书
中学生旷课检讨书模板
2014/10/08 职场文书
员工辞职信范文
2015/03/02 职场文书
2015年工程部工作总结
2015/04/30 职场文书
2015年创先争优工作总结
2015/05/23 职场文书
单身证明格式样本
2015/06/15 职场文书
MySQL 中如何归档数据的实现方法
2022/03/16 SQL Server
MySQL优化及索引解析
2022/03/17 MySQL
Python实现双向链表
2022/05/25 Python