2010-12-09 41 views
1
str = 'This is first line \n 2 line start from her\ Service Name: test \n some 4 line \n User Name: amit \n some something \n Last Name: amit amit \n 

基本上我感興趣的是獲取服務名稱和用戶名。 我應該使用正則表達式來做到這一點。 我想創建一個字典一樣更好的方式從字符串中提取值

dict['service_name'] = 'test' 
dict['user_name'] = 'amit' 
dict['last_name'] = 'amit amit' 

那麼搜索和獲取價值的最佳途徑。

感謝

回答

5

考慮:

str = 'This is first line \n 2 line start from her\nService Name: test \n some 4 line \nUser Name: amit \n some something \nLast Name: amit amit \n' 

下面的代碼:

dict([line.split(':') for line in str.split('\n') if ':' in line]) 

生產:

{'Last Name': ' amit amit ', 'Service Name': ' test ', 'User Name': ' amit '} 

您可能要更改split(':')split(':', 1)以避免在右冒號問題手邊。此外,如果空白空間有問題,您可能需要撥打strip

+0

添加一些strip()s,你在那裏IMO。 – 2010-12-09 11:51:14

0

這不是很elegnat,但你可以爆炸()串入一個使用數組「服務名稱:」作爲分隔符。

+1

我的錯誤,認爲PHP函數名稱不是Python,你需要拆分不爆炸。 – 2010-12-09 12:13:30