正则表达式的新手。
考虑您有以下文本结构:
"hello_1:45||hello_2:67||bye_1:45||bye_5:89||.....|| bye_last:100"
等等
我想构建一个字典,将字符串值作为键,将十进制数作为dict值
我试图用this nice tool来检查我的概念
我写了我的正则表达式:
(\w+):(\d+)
只得到一个匹配 - >字符串中的第一个:hello_1:45
我也尝试了类似的东西:
.*(\w+):(\d+).*
但也不好,有什么想法吗?
答案 0 :(得分:2)
您应该使用g
(全局)修饰符来获取所有匹配项而不是停止到第一个匹配项。在python中,您可以使用re.findall
函数来获取所有匹配项。查看示例here。
答案 1 :(得分:0)
您只能通过分割功能实现此目的。
s = "hello_1:45||hello_2:67||bye_1:45||bye_5:89"
print {i.split(':')[0]:i.split(':')[1] for i in s.split('||')}
如果要将值部分转换为int,请尝试此操作。
print {i.split(':')[0]:int(i.split(':')[1]) for i in s.split('||')}
或
print {i.split(':')[0]:float(i.split(':')[1]) for i in s.split('||')}