Python 正则表达式模块 re 的常用函数
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 处理文本的重要工具,熟练掌握这些函数的用法可以让程序开发更加高效。
