2015-07-19 32 views
0

新的正則表達式。 考慮你有以下的文本結構: "hello_1:45||hello_2:67||bye_1:45||bye_5:89||.....|| bye_last:100"等等
我想建立一個字典,它以字符串值作爲關鍵字,十進制數字作爲字典值。
我試圖檢查使用this nice tool
我寫我的正則表達式表達我的概念:正則表達式提取2組只產生一次匹配

(\w+):(\d+) 

而且只拿到了一個賽 - >第一個字符串中:hello_1:45
我也試過類似:
.*(\w+):(\d+).*
但也不好,有什麼想法?

回答

2

您應該使用g(全球)修飾符來獲取所有的比賽,並沒有停下來的第一個。在Python中,您可以使用re.findall函數來獲取所有匹配項。檢查示例here

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('||')}