用正则表达式从一串字符串中提取子串并存入字典中
时间: 2024-02-22 14:00:07 浏览: 144
好的,我可以为你解答这个问题。
首先,正则表达式是一种用于匹配文本的工具,可以用来从一串字符串中提取子串。具体来说,可以使用 Python 中的 `re` 模块来进行正则表达式的操作。
下面是一个示例代码,可以从一段文本中提取出所有的邮箱地址,并将其存储到一个字典中,以邮箱地址作为字典的 key,出现次数作为 value:
```python
import re
text = "john@example.com, mary@gmail.com, john@example.com"
email_dict = {}
pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
matches = re.findall(pattern, text)
for match in matches:
if match in email_dict:
email_dict[match] += 1
else:
email_dict[match] = 1
print(email_dict)
```
在上面的代码中,我们首先定义了一个字符串 `text`,其中包含了若干个邮箱地址。接着,我们定义了一个空字典 `email_dict`,用于存储提取出来的邮箱地址及其出现次数。然后,我们使用正则表达式 `r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'` 来匹配出所有的邮箱地址,使用 `re.findall()` 函数将匹配结果存储到 `matches` 变量中。最后,我们遍历 `matches` 中的每个匹配结果,将其存储到 `email_dict` 中,并计算每个邮箱地址出现的次数。
希望这个示例代码可以帮助你更好地理解如何使用正则表达式从一串字符串中提取子串,并将其存储到字典中。
阅读全文