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中使用HTML模版的教程
Apr 29 Python
python协程用法实例分析
Jun 04 Python
python从入门到精通(DAY 2)
Dec 20 Python
举例讲解Python设计模式编程中对抽象工厂模式的运用
Mar 02 Python
简述:我为什么选择Python而不是Matlab和R语言
Nov 14 Python
python3 flask实现文件上传功能
Mar 20 Python
python在回调函数中获取返回值的方法
Feb 22 Python
Python学习笔记之函数的参数和返回值的使用
Nov 20 Python
Python如何使用PIL Image制作GIF图片
May 16 Python
用python实现学生管理系统
Jul 24 Python
Python 程序员必须掌握的日志记录
Aug 17 Python
python爬取某网站原图作为壁纸
Jun 02 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
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
PHP逐行输出(ob_flush与flush的组合)
2012/02/04 PHP
PHP中Static(静态)关键字功能与用法实例分析
2019/04/05 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
IE6,IE7下js动态加载图片不显示错误
2010/07/17 Javascript
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
node.js解决获取图片真实文件类型的问题
2014/12/20 Javascript
jQuery子属性过滤选择器用法分析
2015/02/10 Javascript
JS+CSS实现可以凹陷显示选中单元格的方法
2015/03/02 Javascript
动态加载js、css的简单实现代码
2016/05/26 Javascript
解读Bootstrap v4 sass设计
2016/05/29 Javascript
Javascript实现前端简单的路由实例
2016/09/11 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
详解Vue源码学习之callHook钩子函数
2018/07/25 Javascript
Vue 实现前端权限控制的示例代码
2019/07/09 Javascript
npm ci命令的基本使用方法
2020/09/20 Javascript
JQuery Ajax如何实现注册检测用户名
2020/09/25 jQuery
python 的列表遍历删除实现代码
2020/04/12 Python
Python正则表达式经典入门教程
2017/05/22 Python
详解python3 + Scrapy爬虫学习之创建项目
2019/04/12 Python
基于python实现地址和经纬度转换
2020/05/19 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
Django+Django-Celery+Celery的整合实战
2021/01/20 Python
1688平价精选商城:阿里集团旗下,工厂出厂价格直销
2017/04/24 全球购物
中医临床专业自我鉴定范文
2014/01/15 职场文书
中式结婚主持词
2014/03/14 职场文书
驾驶员培训方案
2014/05/01 职场文书
学校安全生产月活动总结
2014/07/05 职场文书
开展批评与自我批评发言材料
2014/10/17 职场文书
2014年会计工作总结
2014/11/27 职场文书
委托书英文
2015/01/28 职场文书
《水浒传》读后感3篇(范文)
2019/09/19 职场文书
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
2021/08/23 MySQL
Spring Boot配合PageHelper优化大表查询数据分页
2022/04/20 Java/Android