欢迎访问宙启技术站
智能推送

Python 正则表达式模块 re 的常用函数

发布时间:2023-05-31 10:22:54

Python 的正则表达式模块 re 提供了一些常用的函数来匹配和处理文本数据。本文将介绍这些函数及其用法。

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

该函数从字符串的开头开始匹配一个正则表达式,如果匹配成功,则返回一个 Match 对象,否则返回 None。参数 pattern 表示要匹配的正则表达式,参数 string 表示要匹配的字符串,参数 flags 可以传递一些匹配标志,例如 re.IGNORECASE 表示忽略大小写匹配。

示例代码:

import re

pattern = r"hello"
string = "hello world"
match_obj = re.match(pattern, string)
if match_obj:
    print("Matched!")
else:
    print("Not matched!")

输出结果:

Matched!

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

该函数从字符串中查找 个匹配指定正则表达式的子串,如果匹配成功,则返回一个 Match 对象,否则返回 None。参数 pattern 和 flags 的含义与 re.match() 函数相同。

示例代码:

import re

pattern = r"hello"
string = "world, hello!"
match_obj = re.search(pattern, string)
if match_obj:
    print("Matched!")
else:
    print("Not matched!")

输出结果:

Matched!

3. re.findall(pattern, string, flags=0)

该函数从字符串中查找所有匹配指定正则表达式的子串,并返回一个列表。参数 pattern 和 flags 的含义与 re.match() 函数相同。

示例代码:

import re

pattern = r"\d+"
string = "100, 123, 456"
match_obj = re.findall(pattern, string)
print(match_obj)

输出结果:

['100', '123', '456']

4. re.sub(pattern, repl, string, count=0, flags=0)

该函数将字符串中匹配指定正则表达式的子串替换为指定的字符串,并返回新的字符串。参数 pattern 和 flags 的含义与 re.match() 函数相同,参数 repl 表示替换后的字符串,参数 count 表示最多替换的次数,默认为替换所有匹配项。

示例代码:

import re

pattern = r"\d+"
string = "2018-01-01"
new_string = re.sub(pattern, "2022", string)
print(new_string)

输出结果:

2022-01-01

5. re.split(pattern, string, maxsplit=0, flags=0)

该函数将字符串按照指定的正则表达式分割为一个列表,并返回该列表。参数 pattern 和 flags 的含义与 re.match() 函数相同,参数 maxsplit 表示最多可以分割的次数,默认为分割所有部分。

示例代码:

import re

pattern = r"[,;.]"
string = "apple,banana;pear.orrange"
new_list = re.split(pattern, string)
print(new_list)

输出结果:

['apple', 'banana', 'pear', 'orrange']

6. re.compile(pattern, flags=0)

该函数用于编译一个正则表达式,返回一个正则表达式对象,可以用于后续的匹配操作。参数 pattern 和 flags 的含义与 re.match() 函数相同。

示例代码:

import re

pattern = r"[a-z]+"
flags = re.IGNORECASE
reg = re.compile(pattern, flags)
string = "Hello World!"
match_obj = reg.search(string)
if match_obj:
    print("Matched!")
else:
    print("Not matched!")

输出结果:

Matched!

7. Match 对象的方法和属性

Match 对象是一个匹配结果对象,可以通过其提供的方法和属性获取匹配结果的详细信息。以下是常用的方法和属性:

- group([group1, ...])

返回匹配的字符串或者字符串的子串。如果参数 group1, ... 有指定,则返回指定的匹配子串。

- start([group])

返回匹配结果的起始位置,如果有参数 group,则返回指定分组的起始位置。

- end([group])

返回匹配结果的结束位置,如果有参数 group,则返回指定分组的结束位置。

- span([group])

返回匹配结果的起始位置和结束位置的元组,如果有参数 group,则返回指定分组的起始位置和结束位置的元组。

示例代码:

import re

pattern = r"(\d+)-(\d+)-(\d+)"
string = "2022-08-01"
match_obj = re.search(pattern, string)
if match_obj:
    print(match_obj.group(0))
    print(match_obj.group(1))
    print(match_obj.group(2))
    print(match_obj.start(2))
    print(match_obj.end())
    print(match_obj.span(3))

输出结果:

2022-08-01
2022
08
5
10
(8, 10)

以上就是 Python 正则表达式模块 re 的常用函数及其用法的介绍。正则表达式是 Python 处理文本的重要工具,熟练掌握这些函数的用法可以让程序开发更加高效。