python3 re返回形式总结

1. re.match() 返回值

re.match() 方法用于从字符串的起始位置匹配一个模式,如果匹配成功,返回一个匹配的对象,否则返回 None。其返回属性有:

group([group1, …]):返回被 RE 匹配的字符串,可以一次输入多个组,将对应的匹配分别返回

start([group]):返回匹配内容在原字符串中的起始位置

end([group]):返回匹配内容的结束位置

span([group]):返回 (start(group), end(group))

import re

text = "Hello, world!"

pattern = r"^Hello"

match = re.match(pattern, text)

print("group():", match.group()) # "Hello"

print("span():", match.span()) # (0, 5)

1.1. 多个组返回

如果正则表达式中有多个括号,即多个组,可以在 group() 中传入参数,以此获取对应的匹配内容。

import re

text = "My name is Python, I'm 27 years old."

pattern = r"My name is (\w+),.*(\d+)"

match = re.match(pattern, text)

print("group(1):", match.group(1)) # "Python"

print("group(2):", match.group(2)) # "27"

print("group(1, 2):", match.group(1, 2)) # ("Python", "27")

1.2. 匹配失败返回 None

如果 re.match() 没有匹配到任何结果,返回 None。

import re

text = "Hello, world!"

pattern = r"Welcome"

match = re.match(pattern, text)

print(match) # None

2. re.search() 返回值

re.search() 方法将从字符串的任意位置开始匹配,返回第一个匹配对象,否则返回 None。其返回属性与 re.match() 相同。

import re

text = "Hello, world!"

pattern = r"world"

match = re.search(pattern, text)

print("group():", match.group()) # "world"

print("span():", match.span()) # (7, 12)

3. re.findall() 返回值

re.findall() 方法返回所有匹配到的结果,以列表形式返回。如果没有匹配结果,则返回空列表。

import re

text = "Python is the best language. I love Python very much!"

pattern = r"Python"

match = re.findall(pattern, text)

print(match) # ["Python", "Python"]

3.1. 多个组返回

如果要返回多个组对应的匹配结果,需要将正则表达式中括号的个数与 group() 中参数的个数对应。

import re

text = "My name is Python, I'm 27 years old."

pattern = r"My name is (\w+),.*(\d+)"

match = re.findall(pattern, text)

print(match) # [("Python", "27")]

4. re.finditer() 返回值

re.finditer() 方法返回一个迭代器,每一个元素都是一个 MatchObject 实例。其返回属性与 re.match() 相同。

import re

text = "Python is the best language. I love Python very much!"

pattern = r"Python"

matches = re.finditer(pattern, text)

for match in matches:

print("group():", match.group()) # "Python"

print("span():", match.span()) # (0, 6)

5. re.sub() 返回值

re.sub() 方法将匹配到的子串替换为指定的字符串,并返回替换后的新字符串。

import re

text = "Python is the best language. I love Python very much!"

pattern = r"Python"

new_text = re.sub(pattern, "JavaScript", text)

print(new_text) # "JavaScript is the best language. I love JavaScript very much!"

5.1. 替换指定次数

re.sub() 方法还可以指定替换的次数。

import re

text = "1 2 3 4 5"

pattern = r"\d+"

new_text = re.sub(pattern, "0", text, count=3) # 只替换前三个

print(new_text) # "0 0 0 4 5"

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签