当前位置: 首页 > news >正文

Python 正则表达式

正则表达式主要用来查找和匹配字符串的。

一、正在表达式基础

字符	描述	示例	TIY\	示意特殊序列(也可用于转义特殊字符)如:空白字符 "\s"  
.	任何字符(换行符除外)	"he..o"
^	起始于	"^hello"
$	结束于	"world$"
*	零次或多次出现	"aix*"
+	一次或多次出现	"aix+"
{}	确切地指定的出现次数	"al{2}"
|	两者任一	"falls|stays"
[]	一组字符	"[a-m]"	,具体用法如下集合	描述
[arn]	返回一个匹配项,其中存在指定字符(a,r 或 n)之一
[a-n]	返回字母顺序 a 和 n 之间的任意小写字符匹配项
[^arn]	返回除 a、r 和 n 之外的任意字符的匹配项
[0123]	返回存在任何指定数字(0、1、2 或 3)的匹配项
[0-9]	返回 0 与 9 之间任意数字的匹配
[0-5][0-9]	返回介于 0 到 9 之间的任何数字的匹配项
[a-zA-Z]	返回字母顺序 a 和 z 之间的任何字符的匹配,小写或大写

2、Python正则表达式常用函数

Python 提供名为 re 的内置包,可用于处理正则表达式。

导入 re 模块:import re

函数	描述
match() 匹配字符串
findall	返回包含所有匹配项的列表
search	如果字符串中的任意位置存在匹配,则返回 Match 对象
split	返回在每次匹配时拆分字符串的列表
sub	用字符串替换一个或多个匹配项

1、match()函数

语法格式:

re.match(pattern, string) pattern:匹配的正则表达式  string:要匹配的字符串。

实例:检查

import restr = "China is a great country"
if re.match('CC+',str):  #检查字符串str中是否包含1个或者多个字符串CCprint('yes')
else:print('no')

返回结果:no

import restr = "China is a great country"
if re.match('C+',str):  #检查字符串str中是否包含1个或者多个字符串Cprint('yes')
else:print('no')

返回结果:yes

2、findall() 函数

findall() 函数返回包含所有匹配项的列表;如果未找到匹配,则返回空列表。

import restr = "China is a great country"
x = re.findall("a", str)
print(x)

运行返回如下:

[‘a’, ‘a’, ‘a’]

3、search() 函数

search() 函数搜索字符串中的匹配项,如果存在匹配则返回 Match 对象。如果有多个匹配,则仅返回首个匹配项:如果未找到匹配,则返回值 None:

import restr = "China is a great country"
x = re.search("a", str)
print(x)

Match 对象是包含有关搜索和结果信息的对象。Match 对象还提供了用于取回有关搜索及结果信息的属性和方法:

span() 返回的元组包含了匹配的开始和结束位置

import restr = "China is a great country"
x = re.search("a", str)
print(x)
print(x.span())  #span() 返回的元组包含了匹配的开始和结束位置

运行后结果如下:
(4, 5)

4、split() 函数

split() 函数返回一个列表,其中字符串在每次匹配时被拆分,返回一个列表

import restr = "China is a great country"
x = re.split("\s", str)  #在每个空白字符处进行拆分
print(x)

运行返回如下:

[‘China’, ‘is’, ‘a’, ‘great’, ‘country’]

5、sub() 函数

sub() 函数把匹配项替换为选择的文本:

import restr = "China is a great country"
x = re.sub("\s", "9", str) #用数字 9 替换每个空白字符
print(x)

运行后返回:
China9is9a9great9country

还可以通过指定 count 参数来控制替换次数:

import restr = "China is a great country"
x = re.sub("\s", "9", str, 2)  #用数字 9 替换前2次出现的空白字符
print(x)

运行后返回:
China9is9a great country

http://www.lryc.cn/news/5187.html

相关文章:

  • spark03-读取文件数据分区数量个数原理
  • 操作系统(day08)内存
  • 11- 聚类算法 (KMeans/DBSCAN/agg) (机器学习)
  • 日日顺供应链|想要看清供应链发展趋势,先回答这三个问题
  • 5守护进程与线程
  • EZ-Cube简易款下载器烧写使用方法
  • sql server安装并SSMS连接
  • Python_pytorch (二)
  • java手机短信验证,并存入redis中,验证码时效5分钟
  • kubectl命令控制远程k8s集群(Windows系统、Ubuntu系统、Centos系统)
  • 【求解器-COPT】COPT的版本更新中,老版本不能覆盖的问题
  • Vue3.0文档整理:一、简介
  • vue2 diff算法及虚拟DOM
  • Ray和极客们的创新之作,2月18日来发现
  • Dubbo 源码分析 – 集群容错之 Router
  • 行人检测(人体检测)3:Android实现人体检测(含源码,可实时人体检测)
  • 【图像分类】基于PyTorch搭建LSTM实现MNIST手写数字体识别(单向LSTM,附完整代码和数据集)
  • Kotlin 1.8.0 现已发布,有那些新特性?
  • likeshop单商户SaaS商城系统—无限多开,搭建多个商城
  • Bean(Spring)的执行流程和生命周期
  • 工作记录------PostMan自测文件导入、导出功能
  • 上海亚商投顾:沪指震荡上行 大消费板块全线走强
  • linux中的图形化UDP调试工具
  • 前端react面试题指南
  • 深入浅出原核基因表达调控(乳糖操纵子、色氨酸操纵子)
  • 10分钟理解Mysql索引
  • nVisual综合布线可视化管理系统解决方案
  • 34岁测试工程师被辞退,难道测试岗位真的只是青春饭吗?
  • Java中常见的空指针异常
  • d亚当替换工厂模式