我有一個CSV在以下約定非標準化,結構化CSV - regexing結構
val1,val2,outerStruct1{valA,valB,innerStruct2{valX, valY},valC},...
問題是,當我嘗試正則表達式的outerStructure1我得到:
outerStruct1{valA,valB,innerStruct2{valX, valY}
代替:
outerStruct1{valA,valB,innerStruct2{valX, valY},valC}
顯然它返回的第一個}
而不是最後一個(有效)一個。我現在正則表達式是:
([a-zA-Z0-9]{0,}\{.*?\})
如何展開它達到適當的右括號?
我正在使用Java,但我想我可以重新格式化其他lang到我的目的。 –
是否'outerStruct1','innerStruct2'部分的結構是靜態的還是會因記錄而異? – JimmyB
吝嗇的重複運算符'*?'專門返回最短匹配。看起來你正在尋找貪婪的重複操作符'*'來代替;但你應該注意不要讓比賽穿越場地邊界。正則表達式並不適合這一點,儘管可以使用正則表達式來實現嵌套級別的有限和硬編碼。 – tripleee