Python 基础 —— re:正则表达
0. 替换(substitute)
去除所有的 html 标签
re.compile(r'<[^>]+>').sub('', html)# sub:表示 substitute,替换
去除所有的非字母
re.sub('[^a-zA-Z]', ' ', text)
1. re.search(re, str):寻找符合正则的子串本身
我们要移除如下字符串中的数字:
>>> raw = 'Toy Story (1995)'
(已知数字仅出现在最右侧,表达电影的年份)
>>> grps = re.search('\((\w+)\)', raw)
>>> grps
<_sre.SRE_Match object at 0x01A19960>
如果此时未在字符串中找到字符匹配,re.search() 的返回为 NoneType 对象,对 NoneType 对象进行任何操作,显然都是非法的。所以一定要对 re.search() 的返回值做判断:
>>> if grps:
... raw[:grps.start()].strip()
...
'Toy Story'
2. 切分文本(split)
import re
re.compile('\\W*').split(sentences)
- (1)
\W
:非字符 - (2)
\\W
:第一个斜线表示转义;
我们可以再加一些额外的判断逻辑(或叫断言,predicate)以屏蔽那些非单词。
[word.lower() for word in re.compile('\\W*').split(sentences) if len(word) > 2 and len(word) < 20]
分隔符为数量不定的一组空白符(制表符\t,空格,换行符\n),则描述一个或多个空白符的 regex 是 \s+:
>> text = 'foo bar\t b\naz \t qux'
>> re.split('\s+', text)
['foo', 'bar', 'b', 'az', 'qux']
调用re.split('\s+', text)
时,正则表达式会先被编译,然后在 text 上调用其 split 方法,,当然也可用 re.compile 自己编译 regex 以得到一个可重用的 regex 对象:
>> regex = re.compile('\s+')
>> regex.split(text)
['foo', 'bar', 'b', 'az', 'qux']
>> regex.findall(text)
[' ', '\t ', '\n', ' \t ']
3. re.findall 指定长度切分
>> s = 'abcdef'
>> re.findall('.{3}', s)
['abc', 'def']
当要切分的对象其长度不满足于切片的倍数时:
>> s = 'abcdefgh'
>> re.findall('.{3}', s)
['abc', 'def']
将会把末尾的部分舍去;
4. group:分组
python group()
待匹配的 pattern 中必须有小括号,否则 group 返回为 None;
import re
a = "123abc456"
pattern = '([0-9]*)([a-z]*)([0-9]*)'
print re.search(pattern, a).group(0) #123abc456,返回整体# 等价于 re.search(pattern, a).group()
print re.search(pattern, a).group(1) #123
print re.search(pattern, a).group(2) #abc
print re.search(pattern, a).group(3) #456
Python 基础 —— re:正则表达相关推荐
- 莫烦 Python 基础 Set正则表达
我的视频学习笔记 Set char_list = ['a', 'b', 'c', 'c', 'd', 'd', 'd'] # 通过set可以去除掉不同的东西 sentence = 'Welcome B ...
- Python之面向对象和正则表达(代数运算和自动更正)
面向对象 一.概念解释 面对对象编程(OOP:object oriented programming):是一种程序设计范型,同时也是一种程序开发的方法,实现OOP的程序希望能够在程序中包含各种独立而又 ...
- python 基础系列(十二) — python正则
python 基础系列(十二) - python正则 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独 ...
- Python 之正则表达re.compile()与re.findall()详解
在使用爬虫提取网页中的部分信息时,采用到了re.compile()与re.findall()两种方法,目的:把网页中的"某某城市土地规划表"截取并打印出来. 网页中的代码: < ...
- python学习——正则表达项目
主要实现功能 从网页爬取关键信息,展示在自己写的界面上. 从http://www.5ppt.net/aricle.asp?id=3947&p=1,获取各个国家的疫情信息. 实现思路 使用req ...
- 【Python基础】Python正则表达式入门到入魔
关于正则表达式,很多人认为,使用的时候查询下就可以,没必要深入学习,但是知识与应用永远都是螺旋辩证的关系,有需要查询也无可厚非,但是先掌握知识,可以让应用更创新,更深入,超越他人,必须要先掌握大量的深 ...
- 【Python基础】字符串专题总结
这篇是字符串专题总结 除了常见的数值型,字符串是另一种常遇到的类型.一般使用一对单引号或一对双引号表示一个字符串. 字符串中如果遇到 \ 字符,可能是在做字符转义,所谓的转义便是字符的含义发生改变,比 ...
- python标准库很丰富支持多种编程范式_基础班-第03天{python基础}
声明:内容来源于网络,本人只是在此稍作整理,如有涉及版权问题,归传智播客官方所有. 认识python(了解) 1.Python发展历史 起源 Python的作者,Guido von Rossum,荷兰 ...
- Python基础知识总结
1. Python基础知识 1.1 Python历史 1.1.1 Python起源 Python的作者,Guido von Rossum,荷兰人.1982年,Guido从阿姆斯特丹大学获得了数学和计 ...
- python基础面试题
python面试题库--1Python基础篇 第一部分 Python基础篇(80题) 为什么学习Python? 语言本身简洁,优美,功能超级强大,跨平台,从桌面应用,web开发,自动化测试运维,爬虫, ...
最新文章
- DOTA系列 食尸鬼(小狗)攻略
- CLR via C# 读书笔记 1-2 创建线程的成本
- 在写HTML和CSS时的黄金规范
- 基于Java+SpringBoot+vue+node.js实现自行车租赁平台管理系统
- 作者:李涛,男,南京邮电大学计算机学院、软件学院院长,南京邮电大学大数据研究院院长。...
- 阿里云物联网平台 > 设备接入 > 使用开放协议自主接入 > CoAP协议接入 >
- Linux故障解决(4)——新安装的CentOS 系统无法上网解决方法 (未知的名称或服务)
- 快速突破面试算法之数学运算篇
- java坦克大战图片素材包,坦克大战素材包
- CC2530单片机精确延时的时间分析
- android开发 手写签名,Android实现手写签名
- Spring-IoCDI
- 概率论知识回顾(十):二维连续随机变量分布函数和联合密度函数
- 360小程序搭载浏览器,再创PC时代又一春
- java操作RabbitMQ
- 24点问题(增加数据)·回溯
- 总不能因为杯子碎了就不再喝水了吧
- 基于51单片机的羽毛球计分器设计
- Learning Disentangled Label Representations for Multi-label Classification
- 50款精美的PSD按钮素材