我有一個字符串,我必須解析,從它正確設置類變量。該字符串結構嚴重,但我無法改變它。我試圖解析它,但沒有一個好的方法來做到這一點沒有問題。字符串本身是一組用於從cmd行觸發exe的屬性和參數。解析邏輯證明非常複雜
我已經制定了一個更容易閱讀,但知道它是1連續字符串。
以下是關於如何閱讀此行的規則。 對於每個'非-dll'命令,您都可以預期單個鍵和值對。對於dll行,您可以在初始dll =,'即'dll'元素包含0個或多個keyValue或單獨的空值分隔值之後擁有單個或多個鍵值對。例如 DLL = oneMoreDll,andItsParam =值anotherParam =值lastParam =值值
輸入字符串
時間=值1大小=值2 DLL = aDllName DLL = anotherDllName,someParam = ParamValue DLL = yetAnotherDll, someOhterParam = anotherParamValue aStandAloneValue DLL = oneMoreDll,andItsParam =值anotherParam =值lastParam =值
我希望能夠將此字符串解析爲以下格式,想到在一個字符串數組的每一行。
我試圖分裂的空格,然後'DLL',但我的正則表達式aint達到劃痕或不可能(我確定它不是)。幫幫我!
希望的輸出的元件,將被存儲在一個字符串數組
time=value1
size=value2
dll=aDllName
dll=anotherDllName, someParam=ParamValue
dll=yetAnotherDll, someOhterParam=anotherParamValue aStandAloneValue
dll=oneMoreDll, andItsParam=value anotherParam=value lastParam=value
爲什麼不用空格拆分,然後用'='進一步拆分結果? – Rob
按空格分割會導致dll字符串碎片化,其中包含空格,我想將每個dll細節放在一起 - 有些不包含params – Fearghal
您的問題是什麼?顯示預期的輸入和輸出並**解釋**。 **爲什麼**還要''dll = anotherDllName,someParam = ParamValue'屬於一起,'和ItsParam = value anotherParam = value lastParam = value',但是'attribute1 = value1'和'attribute2 = value2'不是? – CodeCaster