Python --- 正则表达式
时间:2020-07-11
本文章向大家介绍Python --- 正则表达式,主要包括Python --- 正则表达式使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
什么是正则表达式
我们希望只提取出关注的数据,此时可以通过一些表达式进行提取,正则表达式就是其中一种进行数据筛选的表达式。
原子
原子是正则表达式中最基本的组成单位,每个正则表达式中至少包含一个原子
常见的原子类型有:
1、 普通字符作为原子
2、 非打印字符作为原子
3、 通用字符作为原子
4、 原子表
普通字符作为原子
import re //一定要导入
string = "yigeiwoligiao"
pat = "yi"
print(re.search(pat,string))
非打印字符作为原子
import re //一定要导入
string = "yigeiwoligiao"
pat = "\n"
print(re.search(pat,string))
通用字符作为原子
\w 字母、数字、下划线
\W 除字母、数字、下划线
\d 十进制数字
\D 除十进制数字
\s 空白字符
\S 除空白字符
import re
string = "yigeiw1oligiao"
pat = "\w\d"
print(re.search(pat,string))
原子表
import re
string = "yigeiw1oligiao"
pat = "gei[wyz]"
print(re.search(pat,string))
元字符
. 除换行外任意的一个字符
^ 开始位置
$ 结束位置
- 0\1\多次
? 0\1次
- 1\多次
[n] 恰好n次
[n,] 至少n次
[n,m] 至少n次,至多m次
| 模式选择符或
() 模式单元
模式修正符
I 匹配时忽略大小写
M 多行匹配
L 本地化识别匹配
U uniconde
S 让匹配包括换行符
import re
string = "yigeiw1oligiao"
pat = "Gei"
print(re.search(pat,string,re.I))
贪婪模式与懒惰模式
贪婪模式的核心就是尽可能多的匹配,懒惰模式的核心就是尽可能少的匹配
import re
string = "yigeiw1oligiao"
pat1 = "y.*g"# 贪婪模式
pat2 = "y.*?g"# 懒惰模式,精准
print(re.search(pat1,string,re.I))
print(re.search(pat2,string,re.I))
正则表达式函数
re.match()、re.search()、全局匹配函数、re.sub()函数
1、match //从头匹配
import re
string = "yigeiw1oligiao"
pat = "i.*g"# None
print(re.match(pat,string,re.I))
2、search //不从头匹配也可以
import re
string = "yigeiw1oligiao"
pat = "i.*g"
print(re.search(pat,string,re.I))
全局匹配格式re.compile(正则表达式).findall(数据)
import re
string = "yigeiw1oligiao"
pat = "y.*?g"
print(re.compile(pat).findall(string))
匹配.com和.cn网址
import re
string = "<a helf='http://www.baidu.com'>百度首页</a>"
pat = "[a-zA-Z]+://[\S]*[.com|.cn]"
print(re.compile(pat).findall(string))
匹配电话号码
import re
string = "dawdaw123-156479879awdadw674-456789465dwada"
pat = "\d{4}-\d{7}|\d{3}-\d{8}"# 这是大括号
print(re.compile(pat).findall(string))
原文地址:https://www.cnblogs.com/bingers/p/13284484.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 举一反三:三种问题,两个指针,一种方法
- torch.backends.cudnn.benchmark ?!
- jQuery ui中sortable draggable droppable的使用
- 阿里面试:看你springBoot用的比较溜来,说说springboot自动装配是怎么回事?
- CVPR:深度无监督跟踪
- Discourse 数据分发
- Discourse 如何备份到 S3
- Solr集群(即SolrCloud)搭建与使用
- 在CentOS8上安装Surelog
- sqlplus执行错误的问题探究
- 不借助Maven,使用Eclipse创建Hello World级别的Spring项目
- Spring Bean的生命周期
- Spring Bean 后置处理器PostProcessor
- 潘石屹用Python解决100个问题 | 排列组合
- 潘石屹用Python解决100个问题 | 企业根据利润提成发奖金