Python-字符串解析-正则-re
正则表达式
特殊字符序列,匹配检索和替换文本
普通字符 + 特殊字符 + 数量,普通字符用来定边界
更改字符思路
字符串函数 > 正则 > for循环
元字符 匹配一个字符
# 元字符大写,一般都是取小写的反
1. 0~9 整数 \d 取反 \D
import re example_str = "Beautiful is better than ugly 78966828 $ \r \r\n ^Explicit is better than implicit" print(re.findall(r"\d", example_str))
print(re.findall(r"\D", example_str))
2. 字母、数字、下划线 \w 取反 \W
import re example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit" print(re.findall(r'\w', example_str))
print(re.findall(r'\W', example_str))
3. 空白字符(空格、\t、\t、\n) \s 取反 \S
import re example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit" print(re.findall(r'\s', example_str))
print(re.findall(r'\S', example_str))
4. 字符集中出现任意一个 [] 0-9 a-z A-Z 取反 [^]
import re example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit" print(re.findall(r'[0-9]', example_str))
print(re.findall(r'[^0-9]', example_str))
5. 除 \n 之外任意字符
import re example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit" print(re.findall(r".", example_str))
数量词 指定前面一个字符出现次数
1. 贪婪和非贪婪
a. 默认情况下是贪婪匹配,尽可能最大匹配直至某个字符不满足条件才会停止(最大满足匹配)
b. 非贪婪匹配, 在数量词后面加上 ? ,最小满足匹配
c. 贪婪和非贪婪的使用,是程序引起bug重大原因
import re example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit" print(re.findall(r'.*u', example_str))
print(re.findall(r'.*?u', example_str))
2. 重复指定次数 {n} {n, m}
import re example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit" print(re.findall(r'\d{3}', example_str))
3. 0次和无限多次 *
import re example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit" print(re.findall(r'.*', example_str))
4. 1次和无限多次 +
import re example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit" print(re.findall(r'\d+', example_str))
5. 0次或1次 ? 使用思路: 去重
import re example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit" print(re.findall(r'7896?', example_str))
边界匹配
1. 从字符串开头匹配 ^
2. 从字符串结尾匹配 $
正则表达式或关系 |
满足 | 左边或者右边的正则表达式
import re example_str = "Beautiful is better_ than ugly 78966828 $ \r \r\n ^Explicit is better than implicit" print(re.findall(r'\d+|\w+', example_str))
组
() 括号内的正则表达式当作单个字符,并且返回()内正则匹配的内容,可以多个,与关系
Python-正则相关模块-re
1. 从字符中找到匹配正则的字符 findall()
import re
name = "Hello Python 3.7, 123456789" total = re.findall(r"\d+", name)
print(total)
2. 替换正则匹配者字符串 sub()
import re def replace(value):
return str(int(value.group()) + 1) result_str = re.sub(r"\d", replace, name, 0)
print(result_str)
匹配一个中文字符 [\u4E00-\u9FA5]
Python-字符串解析-正则-re的更多相关文章
- [转] 强大的python字符串解析
1.python字符串通常有单引号('...').双引号("...").三引号("""...""")或('''...'' ...
- Python字符串解析方法汇总
Python字符串方法解析 1.capitalize 将首字母大写,其余的变成小写 print('text'.capitalize()) print('tExt'.capitalize()) 结果: ...
- python字符串、正则-xdd
1.分割字符串 str.split(sep,maxsplit) #(分隔符,分几次) 2.合并字符串 str2=string.join(iterable) #str2='@'.join(list1) ...
- Python入门 —— 04字符串解析
字符串 -字符串是 Python 中最常用的数据类型.(可以说是大多数语言都常用) 1. 创建字符串 ( '' 或 "" 和 '''''')(单,双和三引号)(字符串可以为空) - ...
- Python time strptime() 函数根据指定的格式把一个时间字符串解析为时间元组
Python time strptime() 函数根据指定的格式把一个时间字符串解析为时间元组 import time dt=time.strptime('2019-08-08 11:32:23', ...
- python——字符串 & 正则表达
raw字符串(原始字符串) 所见即所得,例如r''My's\n'' Python转义字符 在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符.如下表: 转义字符 描述 \(在行尾时) 续 ...
- python 字符串探讨
本文内容基于python3 几乎所有有用的程序都会涉及到某些文本处理,不管是解析数据还是产生输出.字符串的学习是重点中的重点,这一节将重点关注文本的操作处理,比如提取字符串,搜索,替换以及解析等.大部 ...
- python字符串、字符串处理函数及字符串相关操作
python字符串.字符串处理函数及字符串相关操作 字符串介绍 python字符串表示 Python除处理数字外还可以处理字符串,字符串用单撇号或双撇号包裹: >>> 'spam e ...
- python浅谈正则的常用方法
python浅谈正则的常用方法覆盖范围70%以上 上一次很多朋友写文字屏蔽说到要用正则表达,其实不是我不想用(我正则用得不是很多,看过我之前爬虫的都知道,我直接用BeautifulSoup的网页标签去 ...
- Python XML解析(转载)
Python XML解析 什么是XML? XML 指可扩展标记语言(eXtensible Markup Language). 你可以通过本站学习XML教程 XML 被设计用来传输和存储数据. XML是 ...
随机推荐
- Windows & Linux 安装使用 Vim 编辑器 3分钟入门 - 精简归纳
Windows & Linux 安装使用 Vim 编辑器 3分钟入门 - 精简归纳 JERRY_Z. ~ 2020 / 8 / 25 转载请注明出处! 目录 Windows & Lin ...
- 腾讯大牛教你简单的自动化测试模型(Python+Selenium)
今天讲解简单的自动化测试模型,对于刚接触自动化测试的同学,由于没有编程语言的基础,是搞不懂代码里面的函数.封装.包以及其他概念,只是了解字符串.数组.元组及字典这种最基本的名词,更不懂自动化测试框架了 ...
- .Net ImageSharp给图片添加文字
开始之前需要Nuget安装的包 ##这三个包是一定要安装的,不然库的有些方法用不了 一.导入字体 var fonts = new FontCollection(); var fontFamily = ...
- Photon PUN 二 大厅 & 房间
一, 简介 玩过 LOL , dota2, 王者荣耀 等MOBA类的游戏,就很容易理解大厅和房间了. LOL中一个服务器就相当与一个大厅; 什么电一,电二 ,,, 联通一区等 每一个区就相当于一个大厅 ...
- 使用powershell完成定时get任务
最近公司网站需要在后台定时请求和更新数据,但PHP毕竟是一种后端语言,不能自动运行,所以整理了几个方法. 1.在前端定时请求页面. 2.使用批处理. 3.使用windows计划任务. 第一种方案必须要 ...
- Unity游戏资源反解工具
https://github.com/ata4/disunity http://devxdevelopment.com/UnityUnpacker 链接:https://pan.baidu.com/s ...
- windows下TOMCAT对内存使用的设置
1.打开TOMCAT目录 E:\备份\apache-tomcat-8.5.50-windows-x64\apache-tomcat-8.5.50\bin catalina.bat----------- ...
- 调手表(bfs)
题目描述 小明买了块高端大气上档次的电子手表,他正准备调时间呢.在 M78 星云,时间的计量单位和地球上不同,M78 星云的一个小时有 n 分钟.大家都知道,手表只有一个按钮可以把当前的数加一.在调分 ...
- Codeforces 1321E World of Darkraft: Battle for Azathoth
题意 有\(n\)个武器,第\(i\)个武器攻击力为\(a_i\),价值\(ca_i\). 有\(m\)个防具,第\(i\)个防具防御力为\(b_i\),价值\(cb_i\). 有\(p\)个怪,第\ ...
- vue mixin混入
基本结构 export default { data() { return {} }, computed: { }, methods: { }, filters: { }, created() { } ...