正则查找相关的方法 | 学习笔记

简介: 快速学习 正则查找相关的方法

开发者学堂课程【Python入门 2020年版正则查找相关的方法】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/639/detail/10442


正则查找相关的方法


内容介绍:

一、 match search 方法的使用

二、 finditer 方法

三、 findall 方法

四、 fullmatch 方法


Python 中的查找匹配方法,常见的有下面五种,他们的用法大致相同,但是匹配出的结果却不同。


一、match 和s earch 方法的使用

match 方法(只匹配字符串开头):查找字符串,返回的结果是一个 re.Match 对象。

search 方法(扫描整个字符串,找到第一个匹配):查找字符串,返回的结果是一个 re.Match 对象。但是与 match 方法是有区别的。

m1 = re.match(r " hello', 'hello wrold good morining ' )

print(m1)

m2 = re.search(r' hello', 'hello wrold good morining ' )

print(m2)

输出结果:

5),match=' hello '>

5), match= 'hello '>

其中的 span,表示的是匹配到的开始,这里是从0开始到5结束但不包括5。假如r后面是‘hel’,则 span = (0,3)

两个输出结果都是相同的。我们给他改一下后。

m2 = re.search(r' hello', 'hello wrold good morining ' )

print(m2)

输出的结果是:

16), match='good ' >

m3 = re.match(r'good ' , 'hello wrold good morining ' )

print(m3)

而这个时候输出的结果就是 None

两者共同点:

1.    只对字符串查询一次

2.    返回值类型都是re.Match类型的对象

两者不同点:

match 是从头开始匹配,一旦匹配失败,就返回 None。只要查找的内容不在开头就会返回 None

search 是在整个字符串里匹配,只要字符串中有查找的字符串就会匹配成功。


二、finditer 方法

扫描整个字符串,找到所有的匹配,并返回一个可迭代对象返回的结果是个可迭代对象。

当我们用 search 方法的时候,无法对所有需要查找的字符串进行匹配,而是只能查找第一个。

print(re.search(r'x ' , ‘klxdasxadfxidfasxdfidzxds'))

输出的结果为:


我们看到只能匹配到第一个 x

m3 = re.finditer(r'x', 'klxdasxadfxidfasxdfidzxds ' )

print(isinstance(m3Iterable))

for t in m3:

print(t)

输出的结果是:

True

3)match='x '>

7), match= 'x '>

11),match='x '>

17),match='x '>

23),match='x ' >

输出为 True 表示 m3是个可迭代对象。


三、findall 方法

扫描整个字符串,找到所有的匹配。

m4 = re.findall(r'x','klxdasxadfxidfasxdfidzxds')

print(m4)

输出的结果为:

[x, x, x, x, x]

将所有匹配到的字符串匹配到列表里。

m4 = re.findall(r'x\d+','klx45dasx78adfxidfasx6dfidzxds')

print(m4)

输出的结果为:

[x45, x78, x6]

这里用到正则表达式,查找 x 后面有数字的字符串进行匹配,x 后面没有数字不会进行匹配。


四、fullmatch 方法

扫描整个字符串。

m5 = re.fullmatch(r" hello world ', 'hello world ')

print(m5)

输出的结果为:

11)match='hello world ' >

当查找的字符串完全相同会完成匹配。不同的时候会返回值 None

m6 = re.fullmatch(r"h.*d, hoirjegoriejgd)

print(m6)

输出的结果为:

5),match= 'hoirjegoriejgd '>

h”和“d”之间出现一次或多次的任意字符的情况也可以完全匹配,无论字符串“h”和“d”之间的字符串是怎么样的都可以完成匹配。

相关文章
|
前端开发 JavaScript API
从0开始学习JavaScript--JavaScript 异步编程
在现代的Web开发中,异步编程变得愈发重要。随着用户期望的提高和网络应用的复杂性增加,有效地处理异步操作成为构建高性能、交互丰富的应用的关键。JavaScript作为一门单线程的语言,采用异步机制来处理并发任务,确保用户体验不受阻塞。
|
前端开发 JavaScript 开发者
JavaScript 中的异步编程:深入了解 Promise 和 async/await
【10月更文挑战第8天】JavaScript 中的异步编程:深入了解 Promise 和 async/await
|
前端开发 小程序 JavaScript
小程序 canvas 生成海报 一次搞掂
小程序 canvas 生成海报 一次搞掂
203 1
|
11月前
|
前端开发 JavaScript Java
一文带你了解和使用js中的Promise
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。自学前端2年半,正向全栈进发。如果我的文章对你有帮助,请关注我,将持续更新更多优质内容!🎉🎉🎉
479 0
一文带你了解和使用js中的Promise
|
前端开发 开发者
SCSS中的结构化伪类选择器详解与示例
SCSS中的结构化伪类选择器详解与示例
381 1
|
12月前
|
JavaScript 前端开发 UED
Vue与uni-app开发中通过@font-face巧妙引入自定义字体
Vue与uni-app开发中通过@font-face巧妙引入自定义字体
796 9
|
IDE 前端开发 JavaScript
Prettier与ESLint:代码风格与质量的自动化保证
这两个工具协同工作以确保代码一致性。Prettier负责自动格式化,包括缩进、引号等,而ESLint执行静态分析,检查潜在错误和风格。Prettier配置文件如`.prettierrc`,ESLint配置如`.eslintrc.js`。安装它们并集成,例如使用`eslint-plugin-prettier`和`eslint-config-prettier`。在提交前,可通过husky和lint-staged在本地自动运行格式化和检查。IDE中配置插件可实现实时反馈。自定义规则和选择共享配置(如airbnb)以适应项目需求,并在CI流程中集成以保持高标准。
332 1
|
前端开发 JavaScript 容器
程序技术好文:纯原生javascript下拉框表单美化实例教程
程序技术好文:纯原生javascript下拉框表单美化实例教程
258 0
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
2961 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
前端开发 小程序 JavaScript
小程序海报,极简的实现方式
小程序海报,极简的实现方式
115 2
小程序海报,极简的实现方式