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利用ansible分发处理任务
Aug 04 Python
tensorflow构建BP神经网络的方法
Mar 12 Python
详解Django 中是否使用时区的区别
Jun 14 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
Sep 13 Python
python实现顺时针打印矩阵
Mar 02 Python
100行Python代码实现每天不同时间段定时给女友发消息
Sep 27 Python
Django中的session用法详解
Mar 09 Python
python+selenium+chromedriver实现爬虫示例代码
Apr 10 Python
Python基于Tkinter编写crc校验工具
May 06 Python
Python3自定义http/https请求拦截mitmproxy脚本实例
May 11 Python
Tensorflow之MNIST CNN实现并保存、加载模型
Jun 17 Python
使用Pytorch搭建模型的步骤
Nov 16 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源代码
2006/10/09 PHP
PHP数组对比函数,存在交集则返回真,否则返回假
2011/02/03 PHP
深入理解curl类,可用于模拟get,post和curl下载
2013/06/08 PHP
ThinkPHP分页实例
2014/10/15 PHP
PHP编译configure时常见错误的总结
2017/08/17 PHP
JS 显示当前日期与时间的代码
2010/03/24 Javascript
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
2011/01/01 Javascript
基于jquery实现的鼠标滑过按钮改变背景图片
2011/07/15 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
2013/07/02 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
jquery ztree实现模糊搜索功能
2016/02/25 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
Js自定义多选框效果的实例代码
2017/07/05 Javascript
js Date()日期函数浏览器兼容问题解决方法
2017/09/12 Javascript
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
2017/11/09 jQuery
Vue2.0实现组件数据的双向绑定问题
2018/03/06 Javascript
使用 js 简单的实现 bind、call 、aplly代码实例
2019/09/07 Javascript
[01:35]2018完美盛典章节片——共竞
2018/12/17 DOTA
[02:19]2018年度DOTA2最佳核心位选手-完美盛典
2018/12/17 DOTA
使用python绘制人人网好友关系图示例
2014/04/01 Python
Ubuntu下安装PyV8
2016/03/13 Python
Python2实现的LED大数字显示效果示例
2017/09/04 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
2018/04/17 Python
Python3随机漫步生成数据并绘制
2018/08/27 Python
详解python中TCP协议中的粘包问题
2019/03/22 Python
关于python中的xpath解析定位
2020/03/06 Python
如何用tempfile库创建python进程中的临时文件
2021/01/28 Python
matplotlib事件处理基础(事件绑定、事件属性)
2021/02/03 Python
美国全球旅游运营商:Pacific Holidays
2018/06/18 全球购物
Boden澳大利亚官网:英国在线服装公司
2018/08/05 全球购物
《凡卡》教学反思
2014/04/09 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
Nest.js参数校验和自定义返回数据格式详解
2021/03/29 Javascript
golang json数组拼接的实例
2021/04/28 Golang
用php如何解决大文件分片上传问题
2021/07/07 PHP
JavaWeb 入门:Hello Servlet
2021/07/16 Java/Android