正则提取关键字符-python代码实现
原文地址:http://www.bugingcode.com/blog/python_re_extraction_key.html
关于python
的正则使用在以前的文章中 http://www.bugingcode.com/blog/python_regular_expressions.html ,都有介绍,但是这边文章比较大,内容讲的不够细,这里专门讲如何用python正则匹配到自己需要的字符串。
正则提取数据
还是以url字符串来进行匹配:http://www.bugingcode.com/blog/python_regular_expressions.html,url的字符串有明显的一样,bugingcode
为域名,blog
为目录名,python_regular_expressions
为文章的名称。在这里需要把这三个字符串都提取出来。
贪婪和非贪婪匹配
查看正则匹配规则:
.
: 匹配任意除换行符"\n"外的字符
+
: 匹配前面字符1次到无限次
在我们可以用/
来对提取的字符进行限制,也就是卡死头和尾,看看会得到什么样的结果。
import re
str = "http://www.bugingcode.com/blog/python_regular_expressions.html"
print re.findall(r"/(.+)/",str)
会输出什么样的结果呢?
有人猜结果:
['/www.bugingcode.com','blog']
不可能出现这种结果的,因为r"/(.+)/"
中已经把/
用掉了,往下匹配已经找不到/
号了。
有人猜结果:
['/www.bugingcode.com']
也有人猜:
['/www.bugingcode.com/blog']
这是关于正则表达式的贪婪和非贪婪匹配,简单的记住正则匹配中有出现 ?
才是 非贪婪匹配,这里的正则匹配是贪婪的,也就是最大的匹配情况,一般来说我们选用的是非贪婪
模式。
import re
str = "http://www.bugingcode.com/blog/python_regular_expressions.html"
print re.findall(r"//(.+?)/",str)
匹配的结果为:
['www.bugingcode.com']
提取所有需要的字段
刚才说了一个(.+?)
只能匹配到一个字符串,而我们需要提取 三个字段:bugingcode
为域名,blog
为目录名,python_regular_expressions
。
import re
str = "http://www.bugingcode.com/blog/python_regular_expressions.html"
print re.findall(r"www.(.+?).com/(.+?)/(.+?).html", str)
输出如下我们需要的结果:
[('bugingcode', 'blog', 'python_regular_expressions')]
再来一个看看是什么结果:
import re
str = "http://www.bugingcode.com/blog/python_regular_expressions.htmlhttp://www.bugingcode.com/blog/python_regular_expressions.html"
print re.findall(r"www.(.+?).com/(.+?)/(.+?).html", str)
有的时候需要提取的字符串比较复杂是,可以通过不断的进行尝试,先把条件放的比较苛刻,后面在慢慢的放开,找到自己需要的字符串。
转载请标明来之:http://www.bugingcode.com/
更多教程:阿猫学编程
正则提取关键字符-python代码实现的更多相关文章
- python中的关键字符
from keyword import kwlistprint(kwlist)for i in kwlist: print(i) 可以显示所有的关键字符,开发者不要重新赋予其他值. a = 10000 ...
- python+正则提取+ip代理爬取糗事百科文字信息
很多网站都有反爬措施,最常见的就是封ip,请求次数过多服务器会拒绝连接,如图: 在程序中设置一个代理ip,可有效的解决这种问题,代码如下: # 需要的库 import requests import ...
- Python正则提取数据单引号内数据,并判断是否是空列表(是否提取到数据)
#coding=utf- import re string1="asdfgh'355'dfsfas" string2="fafafasfasdfasdf" pa ...
- 字符编码和Python代码操作文件
字符编码和Python代码操作文件 读写模式之a模式 # a模式 只追加模式 # 路径不存在:自动创建 with open(r'a.txt','a',encoding='utf8') as f: pa ...
- 员工管理系统+字符编码+Python代码文件操作
员工管理系统+字符编码+Python代码文件操作 1.员工管理系统 1.1 debug 代码调试 1.先使用鼠标左键在需要调试的代码左边点击一下(会出现一个红点)2.之后右键点击debug运行代码 ...
- 使用Python提取中文字符
#功能:国际化测试,用于提取应用设计包中的中文字符,并输出report#解压---筛选---整理路径---提取中文---输出报告 ################################### ...
- Python 代码实现模糊查询
Python 代码实现模糊查询 1.导语: 模糊匹配可以算是现代编辑器(如 Eclipse 等各种 IDE)的一个必备特性了,它所做的就是根据用户输入的部分内容,猜测用户想要的文件名,并提供一个推荐列 ...
- Python代码样例列表
扫描左上角二维码,关注公众账号 数字货币量化投资,回复“1279”,获取以下600个Python经典例子源码 ├─algorithm│ Python用户推荐系统曼哈顿算法实现.py│ ...
- 10 行 Python 代码实现模糊查询/智能提示
10 行 Python 代码实现模糊查询/智能提示 1.导语: 模糊匹配可以算是现代编辑器(如 Eclipse 等各种 IDE)的一个必备特性了,它所做的就是根据用户输入的部分内容,猜测用户想要的 ...
随机推荐
- LNMP应用
1.LNMP架构概述 LNMP就是Linux+Nginx+MySQL+PHP Linux作为服务器的操作系统 Nginx作为Web服务器 PHP作为解析动态脚本语言 MySQL即为数据库 Nginx服 ...
- spring mvc + ajax上传文件,页面局部刷新
1.点击上传按钮进行如下操作,通过表单名称以及input名称获取相应的值,对于上传的文件,使用.files来获取, 因为包含文件的上传,所以采用FormData的形式来进行数据交互,通过append将 ...
- redis备忘录
Redis 是一个基于内存的高性能key-value数据库.Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数 ...
- java中 Spring 定时器定时任务Quartz的正确使用方法集配置
定时任务我想大家都不默认,现在流行的框架spring就带了定时任何 我的个人网站(http://www.yzcopen.com)上用户上传的文件都是用这套定时任务执行定时清除 第一步:在applica ...
- postman测试
Postman接口性能测试 1.从文件中获取参数,然后点击Runner 2.勾选测试用例,配置用例次数.参数文件.返回data等 3.点击run 测试用例 4.查看测试结果 5.测试接口:https: ...
- PyTorch基础——使用卷积神经网络识别手写数字
一.介绍 实验内容 内容包括用 PyTorch 来实现一个卷积神经网络,从而实现手写数字识别任务. 除此之外,还对卷积神经网络的卷积核.特征图等进行了分析,引出了过滤器的概念,并简单示了卷积神经网络的 ...
- Git log 中文乱码
以下三条命令搞定(系统是centos 7.4) git config --global i18n.commitencoding utf-8 git config --global i18n.logo ...
- drf框架与postman初始
drf框架 全称:django-rest framework 知识点 """ 1.接口:什么是接口.restful接口规范 2.CBV生命周期源码 - 基于restful ...
- [LC] 452. Minimum Number of Arrows to Burst Balloons
There are a number of spherical balloons spread in two-dimensional space. For each balloon, provided ...
- 43)PHP,mysql_fetch_row 和mysql_fetch_assoc和mysql_fetch_array
mysql_fetch_row 提取的结果是没有查询中的字段名了(也就是没有键id,GoodsName,只有值),如下图: mysql_fetch_assoc 提取的结果有键值,如下图: mysq ...