用正则表达式从字符串"李柳, 13102324412, 341282200302027219,nazhao@dai.cn"中提取姓名、电话、身份证号、邮箱,并存入字典中
时间: 2023-07-04 08:21:23 浏览: 100
好的,下面是一个示例代码,可以从给定的字符串中提取出姓名、电话、身份证号、邮箱,并将其存储到一个字典中:
```python
import re
text = "李柳, 13102324412, 341282200302027219,nazhao@dai.cn"
info_dict = {}
name_pattern = r'^([\u4e00-\u9fa5]+),'
phone_pattern = r'(\d{11}),'
id_pattern = r'(\d{18}),'
email_pattern = r',([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})$'
name_match = re.search(name_pattern, text)
phone_match = re.search(phone_pattern, text)
id_match = re.search(id_pattern, text)
email_match = re.search(email_pattern, text)
if name_match:
info_dict['姓名'] = name_match.group(1)
if phone_match:
info_dict['电话'] = phone_match.group(1)
if id_match:
info_dict['身份证号'] = id_match.group(1)
if email_match:
info_dict['邮箱'] = email_match.group(1)
print(info_dict)
```
在上面的代码中,我们首先定义了一个字符串 `text`,其中包含了姓名、电话、身份证号和邮箱等信息。接着,我们定义了一个空字典 `info_dict`,用于存储提取出来的个人信息。然后,我们使用正则表达式分别匹配出姓名、电话、身份证号和邮箱,使用 `re.search()` 函数将匹配结果存储到相应的变量中。最后,我们判断每个变量中是否有匹配结果,如果有则将其存储到 `info_dict` 中。
需要注意的是,我们在正则表达式中使用了一些特殊字符,如 `^` 表示字符串的开头,`$` 表示字符串的结尾,`[\u4e00-\u9fa5]` 表示汉字的 Unicode 范围,`\d` 表示数字,`[a-zA-Z0-9._%+-]+` 表示邮箱地址中允许出现的字符,等等。
希望这个示例代码可以帮助你更好地理解如何使用正则表达式从字符串中提取个人信息,并将其存储到字典中。
阅读全文