我正在编写一个基于查询搜索数据库的程序(用于python家庭作业)
查询的格式如下(任意字段名称) Field:Value 并用逗号分隔多个
例如
姓名:乔治·布什,地址:1234,b-street,电子邮件:email@email.com
我需要提取字段和值
我一直在玩弄不同的正则表达式,但我是个普通人
现在我的“最好的”正则表达式是这样的: ([\w@ -]+): *([\w@ -]+)
但这不能正确捕获带有逗号的值,并且可能会丢失任意字符
以下是我想要的行为的更多示例
查询:“姓名:乔治·布什”
匹配:'名字','乔治布什'
查询:“地址:1234,街道街道”
匹配:'地址','1234,街道'
查询:“姓名:乔治·布什,地址:1234, street street, f13ldna-me:---”
匹配1:'名字','乔治布什'
Match2:'地址','1234,街道'
Match3: 'f13ldna-me' , '---'