Python字符串匹配之6种方法的使用详解


Posted in Python onApril 08, 2019

1. re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

import re
line="this hdr-biz 123 model server 456"
pattern=r"123"
matchObj = re.match( pattern, line)

2. re.search 扫描整个字符串并返回第一个成功的匹配。

import re
line="this hdr-biz model server"
pattern=r"hdr-biz"
m = re.search(pattern, line)

3. Python 的re模块提供了re.sub用于替换字符串中的匹配项。

import re
line="this hdr-biz model args= server"
patt=r'args='
name = re.sub(patt, "", line)

4. compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。

import re
pattern = re.compile(r'\d+')

5. re.findall 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。

import re
line="this hdr-biz model args= server"
patt=r'server'
pattern = re.compile(patt)
result = pattern.findall(line)

6. re.finditer 和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。

import re
it = re.finditer(r"\d+","12a32bc43jf3")
for match in it:
 print (match.group() )

PS:Python字符串匹配及正则表达式说明 

解析url地址正则表达式:

regexp = (r'^(?P<scheme>[a-z][\w\.\-\+]+)?:(//)?'
     r'(?:(?P<username>\w+):(?P<password>[\w\W]+)@|)'
     r'(?P<domain>[\w-]+(?:\.[\w-]+)*)(?::(?P<port>\d+))?/?'
     r'(?P<path>\/[\w\.\/-]+)?(?P<query>\?[\w\.*!=&@%;:/+-]+)?'
     r'(?P<fragment>#[\w-]+)?$')
match = re.search(regexp, url.strip(), re.U)
if match is None:
  raise ValueError('Incorrent url: {0}'.format(url))
url_parts = match.groupdict()
url='https://blog.csdn.net/weixin_40907382/article/明细/79654372'
print(url_parts):{'scheme': 'https', 'username': None, 'password': None, 'domain': 'blog.csdn.net', 'port': None, 'path': '/weixin_40907382/article/明细/79654372', 'query': None, 'fragment': None}

总结

以上所述是小编给大家介绍的Python字符串匹配之6种方法的使用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python 性能优化技巧总结
Nov 01 Python
详解Python中的相对导入和绝对导入
Jan 06 Python
python实现log日志的示例代码
Apr 28 Python
使用python脚本实现查询火车票工具
Jul 19 Python
Tensorflow使用支持向量机拟合线性回归
Sep 07 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
Apr 28 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
Aug 05 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
Aug 06 Python
用python中的matplotlib绘制方程图像代码
Nov 21 Python
PyTorch实现ResNet50、ResNet101和ResNet152示例
Jan 14 Python
在pycharm中创建django项目的示例代码
May 28 Python
Python利用zhdate模块实现农历日期处理
Mar 31 Python
Python面向对象实现一个对象调用另一个对象操作示例
Apr 08 #Python
Python后台开发Django的教程详解(启动)
Apr 08 #Python
Python3利用print输出带颜色的彩色字体示例代码
Apr 08 #Python
Python定义函数功能与用法实例详解
Apr 08 #Python
详解Python中pandas的安装操作说明(傻瓜版)
Apr 08 #Python
Python下简易的单例模式详解
Apr 08 #Python
Python字符串的常见操作实例小结
Apr 08 #Python
You might like
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
解决laravel中日志权限莫名变成了root的问题
2019/10/17 PHP
javascript 页面划词搜索JS
2009/09/28 Javascript
jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码
2013/06/04 Javascript
jQuery中position()方法用法实例
2015/01/16 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
pace.js页面加载进度条插件
2015/09/29 Javascript
关于微信中a链接无法跳转问题
2016/08/02 Javascript
JS正则表达式修饰符中multiline(/m)用法分析
2016/12/27 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
微信小程序实现打开内置地图功能【附源码下载】
2017/12/07 Javascript
细说webpack源码之compile流程-rules参数处理技巧(1)
2017/12/26 Javascript
Express本地测试HTTPS的示例代码
2018/06/06 Javascript
解决vue select当前value没有更新到vue对象属性的问题
2018/08/30 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
vue router返回到指定的路由的场景分析
2020/11/10 Javascript
[59:08]Ti4 冒泡赛第二天 NEWBEE vs Titan 2
2014/07/15 DOTA
[01:34]DAC2018主赛事第四日五佳镜头 Gh巨牙海民助Miracle-死里逃生
2018/04/07 DOTA
python计算圆周长、面积、球体体积并画出圆
2014/04/08 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
2016/03/02 Python
python中logging库的使用总结
2017/10/18 Python
使用 Python 实现文件递归遍历的三种方式
2018/07/18 Python
python中类的属性和方法介绍
2018/11/27 Python
python脚本当作Linux中的服务启动实现方法
2019/06/28 Python
Python2.6版本pip安装步骤解析
2020/08/17 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
2020/10/15 Python
使用Python快速打开一个百万行级别的超大Excel文件的方法
2021/03/02 Python
HTML5注册表单的自动聚焦与占位文本示例代码
2013/07/19 HTML / CSS
职工趣味运动会方案
2014/02/10 职场文书
《美丽的小兴安岭》教学反思
2014/02/26 职场文书
小学一年级评语大全
2014/04/22 职场文书
施工质量承诺书范文
2014/05/30 职场文书
好听的队名和口号
2014/06/09 职场文书
2014年机关党委工作总结
2014/12/11 职场文书
win11如何查看端口是否被占用? Win11查看端口是否占用的技巧
2022/04/05 数码科技
golang连接MySQl使用sqlx库
2022/04/14 Golang