python正则通过findall函数正则查找匹配的字串

2023-02-28 00:00:00 函数 匹配 正则

在Python中,可以使用正则表达式的findall()函数查找所有与正则表达式匹配的子串,并以列表的形式返回结果。

下面是一个简单的例子,使用正则表达式查找字符串中所有的数字:

import re

text = 'The prices are $15 and $25'
matches = re.findall(r'\d+', text)
print(matches)  # 输出:['15', '25']

在这个例子中,使用正则表达式模式r'\d+'匹配字符串中的数字,并使用re.findall()方法查找所有匹配到的数字,并以列表的形式返回结果。

需要注意的是,如果正则表达式包含捕获组,findall()方法只会返回捕获组匹配到的内容。例如,下面的代码从一个URL中提取出域名信息:

import re

url = 'https://www.example.com/path/to/page.html'
matches = re.findall(r'(https?://)?([\w\.]+)(/\w+)*/?\w+\.\w+', url)
print(matches)  # 输出:[('', 'www.example.com', '/path/to', '.html')]

在这个例子中,使用正则表达式模式r'(https?://)?([\w.]+)(/\w+)*/?\w+.\w+'匹配URL中的域名信息,并使用捕获组将域名信息包含在内,然后使用re.findall()方法查找所有匹配到的内容,并以列表的形式返回结果。由于该正则表达式包含捕获组,因此findall()方法只会返回捕获组匹配到的内容。在这个例子中,返回的结果是一个包含一个元组的列表,元组中包含了捕获组匹配到的内容。

相关文章