【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

相关文章
|
2月前
|
编译器 Python
Python正则表达式的7个使用典范(推荐)
Python正则表达式的7个使用典范(推荐)
25 0
|
2月前
|
Python
Python实现正则表达式匹配。
【2月更文挑战第11天】【2月更文挑战第30篇】Python实现正则表达式匹配。
|
7天前
|
数据安全/隐私保护 Python
Python正则表达式:强大的文本处理工具
Python正则表达式:强大的文本处理工具
9 1
|
11天前
|
Python
Python中的正则表达式以及如何使用它们进行文本处理
正则表达式(Regex)是处理字符串的利器,Python通过`re`模块支持Regex操作,包括匹配模式(`re.match()`),查找模式(`re.search()`),替换内容(`re.sub()`),分割内容(`re.split()`),分组提取(使用括号)以及利用特殊字符创建复杂模式。学习和熟练掌握正则表达式能有效提升文本处理效率。
9 1
|
12天前
|
Python
请解释Python中的正则表达式以及如何使用它们进行文本处理。
正则表达式(Regex)是处理字符串的工具,Python通过`re`模块支持Regex操作,如匹配、查找、替换和分割文本。`re.match()`检查字符串是否以指定模式开始,`re.search()`查找模式,`re.sub()`替换匹配内容,`re.split()`按模式分割字符串。使用括号进行分组提取,特殊字符如`.`、`*`、`+`、`?`、`^`和`$`可创建复杂模式。熟练掌握正则表达式需学习和实践。
10 0
|
2月前
|
Python
请解释Python中的正则表达式以及如何使用它们进行文本处理。
请解释Python中的正则表达式以及如何使用它们进行文本处理。
10 0
|
2月前
|
机器学习/深度学习 Python
请解释Python中的正则表达式是什么?并举例说明其用法。
【2月更文挑战第26天】【2月更文挑战第86篇】请解释Python中的正则表达式是什么?并举例说明其用法。
|
2月前
|
缓存 数据安全/隐私保护 Python
Python快速入门:类、文件操作、正则表达式
Python快速入门:类、文件操作、正则表达式
C4.
|
2月前
|
Python
Python正则表达式
Python正则表达式
C4.
14 1
|
2月前
|
Python
在Python中,如何使用`regex`库进行正则表达式匹配?
在Python中,如何使用`regex`库进行正则表达式匹配?
16 0