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多线程用法实例详解
Jan 15 Python
python 随机生成10位数密码的实现代码
Jun 27 Python
Python Pandas数据中对时间的操作
Jul 30 Python
django 数据库连接模块解析及简单长连接改造方法
Aug 29 Python
带你彻底搞懂python操作mysql数据库(cursor游标讲解)
Jan 06 Python
python模拟预测一下新型冠状病毒肺炎的数据
Feb 01 Python
pyqt5数据库使用详细教程(打包解决方案)
Mar 25 Python
30行Python代码实现高分辨率图像导航的方法
May 22 Python
python时间序列数据转为timestamp格式的方法
Aug 03 Python
解决pytorch 保存模型遇到的问题
Mar 03 Python
详解Python 3.10 中的新功能和变化
Apr 28 Python
Python中Selenium对Cookie的操作方法
Jul 09 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
中国收音机工业发展史
2021/03/02 无线电
用Zend Encode编写开发PHP程序
2006/10/09 PHP
我的论坛源代码(八)
2006/10/09 PHP
Zend的Registry机制的使用说明
2013/05/02 PHP
How to Auto Include a Javascript File
2007/02/02 Javascript
js中判断控件是否存在
2010/08/25 Javascript
解决jquery操作checkbox火狐下第二次无法勾选问题
2014/02/10 Javascript
jQuery选择器全集详解
2014/11/24 Javascript
jquery简单图片切换显示效果实现方法
2015/01/14 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
Javascript自执行匿名函数(function() { })()的原理浅析
2016/05/15 Javascript
JSON字符串转换JSONObject和JSONArray的方法
2016/06/03 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
微信公众号 客服接口的开发实例详解
2016/09/28 Javascript
详解微信小程序开发之下拉刷新 上拉加载
2016/11/24 Javascript
js实现漫天星星效果
2017/01/19 Javascript
js中new一个对象的过程
2017/02/20 Javascript
js弹出窗口简单实现代码
2017/03/22 Javascript
JS实现为动态创建的元素添加事件操作示例
2018/03/17 Javascript
小程序实现发表评论功能
2018/07/06 Javascript
Layui事件监听的实现(表单和数据表格)
2019/10/17 Javascript
vue路由传参的基本实现方式小结【三种方式】
2020/02/05 Javascript
python中对list去重的多种方法
2014/09/18 Python
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
python 实现快速生成连续、随机字母列表
2019/11/28 Python
装饰活动策划方案
2014/02/11 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
暑期社会实践证明书
2014/11/17 职场文书
广播体操比赛主持词
2015/06/29 职场文书
学生会工作感言
2015/08/07 职场文书
2016暑期政治学习心得体会
2016/01/23 职场文书
高中美术教学反思
2016/02/17 职场文书
SQL实现LeetCode(180.连续的数字)
2021/08/04 MySQL
Mysql如何实现不存在则插入,存在则更新
2022/03/25 MySQL
使用kubeadm命令行工具创建kubernetes集群
2022/03/31 Servers