2012-03-11 121 views
1

我正在尋找java正則表達式來分割inputString,同時忽略括號/多個括號之間的分隔符。Java分割字符串,而忽略括號之間的任何分隔符

Java代碼:

Pattern p = Pattern.compile("[,regex?]"); 
String[] desiredOutput =p.split(inputString); 

例如:

inputString="1,{2,{3},4},{4,5},6"; 

desiredOutput用;分隔符:

1;{2,{3},4};{4,5};6 

Thnx!

回答

5

這是不可能使用正則表達式。

該表達式必須匹配具有平衡括號的字符串。 (這不是一種常規語言。)

您需要使用一些其他解析技術或通過計算{}來手動執行。

+0

1+這需要做成一個「粘性」的帖子或常見問題解答,因爲它會被詢問很多次,但通常是在CSV或解析數學表達式的情況下。 – 2012-03-11 15:30:33

+0

*咳嗽*或HTML *咳嗽* – bezmax 2012-03-11 15:31:06

+0

更確切地說,Java的正則表達式是不可能的。 .NET或Perl對遞歸正則表達式沒有任何問題。 – 2012-03-11 15:31:51

相關問題