Python3正则匹配re.split,re.finditer及re.findall函数用法详解
在Python中,正则表达式是一种强大的文本工具,可以用于字符串匹配、替换、分割等操作。本攻略将详细讲解如何使用Python正则表达式中的re.split,re.finditer及re.findall函数,包括函数的用法、参数及返回值等。
re.split函数
re.split函数用于根据正则表达式分割字符串。下面是一个例子,演示如何使用re.split函数分割字符串:
import re
text = 'hello world'
pattern = r'\s'
result = re.split(pattern, text)
print(result)
在上面的代码中,我们使用re.split函数进行正则表达式匹配。re.split函数接受两个参数,第一个参数是正则表达式,第二个参数是要分割的字符串。如果匹配成功,re.split函数返回一个列表,包含所有分割后的子串。我们可以使用print函数输出分割后的子串。运行代码后,结果为:
['hello', 'world']
在上面的代码中,我们使用了正则表达式\s
进行匹配。这个正则表达式匹配空格。然后,我们使用re.split函数进行分割操作。re.split函数返回一个列表,包含所有分割后的子串。我们可以使用print函数输出分割后的子串。
示例1:分割字符串中的数字
下面是一个例子,演示如何使用re.split函数分割字符串中的数字:
import re
text = 'hello 123 world 456'
pattern = r'\d+'
result = re.split(pattern, text)
print(result)
在上面的代码中,我们使用re.split函数进行正则表达式匹配。这个正则表达式使用\d+
匹配数字。然后,我们使用re.split函数进行分割操作。re.split函数返回一个列表,包含所有分割后的子串。我们可以使用print函数输出分割后的子串。运行代码后,结果为:
['hello ', ' world ', '']
在上面的代码中,我们使用了正则表达式\d+
进行匹配。这个正则表达式匹配一个或多个数字。然后,我们使用re.split函数进行分割操作。re.split函数返回一个列表,包含所有分割后的子串。我们可以使用print函数输出分割后的子串。
re.finditer函数
re.finditer函数用于在字符串中找到正则表达式所匹配的所有子串,并返回一个迭代器。下面是一个例子,演示如何使用re.finditer函数查找字符串中的所有数字:
import re
text = 'hello 123 world 456'
pattern = r'\d+'
result = re.finditer(pattern, text)
for match in result:
print(match.group())
在上面的代码中,我们使用re.finditer函数进行正则表达式匹配。re.finditer函数接受两个参数,第一个参数是正则表达式,第二个参数是要匹配的字符串。如果匹配成功,re.finditer函数返回一个迭代器,包含所有匹配到的子串。我们可以使用for循环遍历迭代器,使用match.group()方法获取匹配到的子串。运行代码后,结果为:
123
456
在上面的代码中,我们使用了正则表达式\d+
进行匹配。这个正则表达式匹配一个或多个数字。然后,我们使用re.finditer函数进行匹配操作。re.finditer函数返回一个迭代器,包含所有匹配到的子串。我们使用for循环遍历迭代器,使用match.group()方法获取匹配到的子串。
示例2:查找字符串中的URL
下面是一个例子,演示如何使用re.finditer函数查找字符串中的URL:
import re
text = 'Visit my website at https://www.example.com'
pattern = r'https?://\S+'
result = re.finditer(pattern, text)
for match in result:
print(match.group())
在上面的代码中,我们使用re.finditer函数进行正则表达式匹配。这个正则表达式使用https?://\S+
匹配URL。然后,我们使用re.finditer函数进行匹配操作。re.finditer函数返回一个迭代器,包含所有匹配到的子串。我们使用for循环遍历迭代器,使用match.group()方法获取匹配到的子串。运行代码后,结果为:
https://www.example.com
在上面的代码中,我们使用了正则表达式https?://\S+
进行匹配。这个正则表达式匹配URL。然后,我们使用re.finditer函数进行匹配操作。re.finditer函数返回一个迭代器,包含所有匹配到的子串。我们使用for循环遍历迭代器,使用match.group()方法获取匹配到的子串。
re.findall函数
re.findall函数用于在字符串中找到正则表达式所匹配的所有子串,并返回一个列表。下面是一个例子,演示如何使用re.findall函数查找字符串中的所有数字:
import re
text = 'hello 123 world 456'
pattern = r'\d+'
result = re.findall(pattern, text)
print(result)
在上面的代码中,我们使用re.findall函数进行正则表达式匹配。re.findall函数接受两个参数,第一个参数是正则表达式,第二个参数是要匹配的字符串。如果匹配成功,re.findall函数返回一个列表,包含所有匹配到的子串。我们可以使用print函数输出匹配到的子串。运行代码后,结果为:
['123', '456']
在上面的代码中,我们使用了正则表达式\d+
进行匹配。这个正则表达式匹配一个或多个数字。然后,我们使用re.findall函数进行匹配操作。re.findall函数返回一个列表,包含所有匹配到的子串。我们可以使用print函数输出匹配到的子串。
示例3:查找字符串中的URL
下面是一个例子,演示如何使用re.findall函数查找字符串中的URL:
import re
text = 'Visit my website at https://www.example.com'
pattern = r'https?://\S+'
result = re.findall(pattern, text)
print(result)
在上面的代码中,我们使用re.findall函数进行正则表达式匹配。这个正则表达式使用https?://\S+
匹配URL。然后,我们使用re.findall函数进行匹配操作。re.findall函数返回一个列表,包含所有匹配到的子串。我们可以使用print函数输出匹配到的子串。运行代码后,结果为:
['https://www.example.com']
在上面的代码中,我们使用了正则表达式https?://\S+
进行匹配。这个正则表达式匹配URL。然后,我们使用re.findall函数进行匹配操作。re.findall函数返回一个列表,包含所有匹配到的子串。我们可以使用print函数输出匹配到的子串。
以上是Python3正则匹配re.split,re.finditer及re.findall函数用法详解。实际应用中,我们可以根据具体情况选择合适的函数,以快速、准确地实现文本需求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3正则匹配re.split,re.finditer及re.findall函数用法详解 - Python技术站