2016-02-22 20 views
2

我有一個腳本Python獲取環境變量字符串和分裂變量和值。如何在兩個項目(VAR,VALUE)中拆分環境變量句子?

這是很容易與Python分裂:

export_str = 'VAR1=VALUE1 VAR2=VALUE2' 
for var_value in export_str.split(' '): 
    var,value=var_value.split('=') 
    print var, value 

但問題是,變量可以是更復雜。

export_str = ''' VAR1="VALUE1 OTHER VALUE" VAR2=VALUE2 VAR3=VALUE_3 VAR4="${VALUE5}=VALUE6"''' 

在這種情況下,python腳本是錯誤的。

有沒有更好的方法來分割這個變量?

編輯

或更復雜的情況下,像爲:

export_str = '''VAR5="VALUE'5" VAR6='VALUE"6' VAR7='VALUE7' ''' 

回答

4

您可以分割使用re

import re 
export_str = 'VAR1="VALUE1 OTHER VALUE" VAR2=VALUE2 VAR3=VALUE_3 VAR4="${VALUE5}=VALUE6"' 
re.split(r'\s(?=(?:[^"]*"[^"]*")*[^"]*$)',export_str) 

查看演示。

https://regex101.com/r/uE6jQ1/7

+0

感謝您的回覆。這很棒。 (只需在\「中添加一個scape字符) – moylop260

+0

@ moylop260已編輯。不需要'\」''我們可以使用''''' – vks

+0

下一個例子:'export_str ='VAR1 = \'VALUE「1 \'VAR2 =「VALUE \'VALUE2」'分割VAR1 ='VALUE「1''和'VAR2 =」VALUE'VALUE2「'? – moylop260

相關問題