【Python基础】正则表达式

简介: 【Python基础】正则表达式

【Python基础】正则表达式


提前祝大家新年好,本文应该是春节前最后一篇文章啦~

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配,Python主要通过re模块使用正则表达式.

本文不介绍正则表达式的语法本身,只介绍Python中使用正则表达式。

1 字符串搜索

1.1 re.search

使用re.search函数,扫描整个字符串并返回第一个成功的匹配。

re.search(pattern, string, flags=0)

各个参数的含义如下:

pattern:输入的正则表达式

string: 要匹配的字符串。

flags: 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

如果re.search方法匹配成功,则返回一个匹配的对象;否则返回None。我们以简单例子说明:

import re
result = re.search("bitpy", "www.bitpy.com")
print(result)

输出结果如下:

<re.Match object; span=(4, 9), match='bitpy'>

1.2 提取匹配结果

上一小节得到了匹配结果对象(即re.MatchObject对象),可以根据实际需求提取对应的信息

获取匹配区间

import re
result = re.search("bitpy", "www.bitpy.com")
print(result.span())

输出结果如下:

(4, 9)

除此之外,还有start()函数返回匹配开始的位置;end()函数返回匹配结束的位置。

获取匹配内容

如果需要提取关键子串,可以通过在正则表达式中加入括号,然后对匹配结果通过group函数提取。

import re
result = re.search(r"(.*)\.(.*)\.(.*)", "www.bitpy.com")
if result:
    print(result.groups())
    print(result.group(0))
    print(result.group(1))
    print(result.group(2))
    print(result.group(3))

注意第二行,引号前面加字母r,表示此字符串是正则表达式。

输出结果如下:

('www', 'bitpy', 'com')
www.bitpy.com
www
bitpy
com

2 字符串匹配

re.match尝试从字符串的起始位置匹配一个模式,如果匹配成功,返回re.MatchObject对象;否则返回none

re.match(pattern, string, flags=0)

以简单实例说明:

import re
result_1 = re.match(r"bitpy", "bitpy.com")
result_2 = re.match(r"(.*).com", "bitpy.com")
if result_1:
    print(result_1.span())
if result_2:
    print(result_2.groups())

注意,re.match返回的也是re.MatchObject对象,因此,也可以通过spangroup等函数获取对应的信息。

输出结果如下:

(0, 5)
('bitpy',)

3 标志位flags参数

正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR(|) 它们来指定。如 re.I | re.M 被设置成 IM 标志:

image.png

相关文章
|
5月前
|
Python
"揭秘!Python如何运用神秘的正则表达式,轻松穿梭于网页迷宫,一键抓取隐藏链接?"
【8月更文挑战第21天】Python凭借其强大的编程能力,在数据抓取和网页解析领域表现出高效与灵活。通过结合requests库进行网页请求及正则表达式进行复杂文本模式匹配,可轻松提取网页信息。本示例展示如何使用Python和正则表达式解析网页链接。首先确保已安装requests库,可通过`pip install requests`安装。接着,利用requests获取网页内容,并使用正则表达式提取所有`&lt;a&gt;`标签的`href`属性。
60 0
|
2月前
|
Python
在Python中,可以使用内置的`re`模块来处理正则表达式
在Python中,可以使用内置的`re`模块来处理正则表达式
66 5
|
2月前
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
3月前
|
Python
【收藏备用】Python正则表达式的7个实用技巧
【收藏备用】Python正则表达式的7个实用技巧
36 1
|
3月前
|
数据安全/隐私保护 Python
Python实用正则表达式归纳
Python实用正则表达式归纳
23 3
|
3月前
|
Python
Python 正则表达式高级应用指南
正则表达式是文本模式匹配的强大工具,Python 的 `re` 模块支持其操作。本文介绍正则表达式的高级应用,包括复杂模式匹配(如邮箱、电话号码)、分组与提取、替换操作、多行匹配以及贪婪与非贪婪模式的区别。通过示例代码展示了如何灵活运用这些技巧解决实际问题。
36 7
|
3月前
|
JavaScript 前端开发 Scala
Python学习十:正则表达式
这篇文章是关于Python中正则表达式的使用,包括re模块的函数、特殊字符、匹配模式以及贪婪与非贪婪模式的详细介绍。
26 0
|
3月前
|
数据采集 开发者 Python
Python正则表达式之re.compile函数
`re.compile`是Python正则表达式处理中一个强大的工具,它通过预先编译正则表达式,不仅提升了执行效率,还增强了代码的组织性和可读性。掌握其使用,对于涉及文本分析、数据清洗、日志处理等领域的Python开发者来说,是非常必要的技能。正确并高效地应用这一功能,可以显著提升程序的性能和维护性。
184 0
|
4月前
|
索引 Python
30天拿下Python之正则表达式
30天拿下Python之正则表达式
23 0
|
4月前
|
数据采集 Python
Python正则表达式提取车牌号
Python正则表达式提取车牌号
55 0