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中for循环和while循环的基本使用方法
Aug 21 Python
Python中内置的日志模块logging用法详解
Jul 12 Python
机器学习的框架偏向于Python的13个原因
Dec 07 Python
Python操作word常见方法示例【win32com与docx模块】
Jul 17 Python
对Python中的条件判断、循环以及循环的终止方法详解
Feb 08 Python
在linux系统下安装python librtmp包的实现方法
Jul 22 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
Jul 28 Python
Python中remove漏删和索引越界问题的解决
Mar 18 Python
pandas创建DataFrame的7种方法小结
Jun 14 Python
虚拟机下载python是否需要联网
Jul 27 Python
Python wordcloud库安装方法总结
Dec 31 Python
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
Jun 29 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
关于Zend Studio 配色方案插件的介绍
2013/06/24 PHP
回帖脱衣服的图片实现代码
2014/02/15 PHP
PHP fopen函数用法实例讲解
2019/02/15 PHP
setAttribute 与 class冲突解决
2008/02/17 Javascript
关于javascript中的parseInt使用技巧
2009/09/03 Javascript
Mootools 1.2教程(21)——类(二)
2009/09/15 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
nodeType属性返回被选节点的节点类型介绍
2013/11/22 Javascript
jQuery老黄历完整实现方法
2015/01/16 Javascript
jQuery选择器源码解读(四):tokenize方法的Expr.preFilter
2015/03/31 Javascript
利用jQuery设计一个简单的web音乐播放器的实例分享
2016/03/08 Javascript
关于input全选反选恶心的异常情况
2016/07/24 Javascript
浅谈jquery上下滑动的注意事项
2016/10/13 Javascript
Node.js开发教程之基于OnceIO框架实现文件上传和验证功能
2016/11/30 Javascript
基于nodejs 的多页面爬虫实例代码
2017/05/31 NodeJs
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
详解如何将 Vue-cli 改造成支持多页面的 history 模式
2017/11/20 Javascript
Vue实现带进度条的文件拖动上传功能
2018/02/23 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
taro开发微信小程序的实践
2019/05/21 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
2019/06/18 jQuery
详解nvm管理多版本node踩坑
2019/07/26 Javascript
layui的表单提交以及验证和修改弹框的实例
2019/09/09 Javascript
React中使用Vditor自定义图片详解
2020/12/25 Javascript
python爬虫_微信公众号推送信息爬取的实例
2017/10/23 Python
python中csv文件的若干读写方法小结
2018/07/04 Python
在python中利用numpy求解多项式以及多项式拟合的方法
2019/07/03 Python
Windows下Anaconda和PyCharm的安装与使用详解
2020/04/23 Python
HTML5 使用 sessionStorage 进行页面传值的方法
2018/07/02 HTML / CSS
世界上最受欢迎的钓鱼诱饵:Rapala
2019/05/02 全球购物
体育教师求职信
2014/06/30 职场文书
高中生毕业评语
2014/12/30 职场文书
校长一岗双责责任书
2015/05/09 职场文书
2016年小学六一儿童节活动总结
2016/04/06 职场文书
入党申请书怎么写?
2019/06/21 职场文书