2011-06-16 67 views
0


因此,我想用一個單一的&替換下列字符串中的所有&。這些&可以被一個或多個space分隔開。我有一個示例輸入字符串和我有的代碼片段。Java:RegEx的幫助

輸入字符串:

a& & &&& & b 


這是我到目前爲止有:

String foo = "a& & &&& & b".replaceAll("(\\s*&+\\s*&\\s*)", "&"); 
System.out.println(foo); // prints: "a&&b" 
         // expected: "a&b" 

我不知道爲什麼是兩個&在結果結束了。

任何hlep將不勝感激。謝謝!

回答

1

嘗試:String foo = "a& & &&& & b".replaceAll("(\\s*&[\\s&]*)", "&");

3

爲什麼使其更加複雜比它需要的是

"(\\s*&)+\\s*" 

一個或多個(由零個或多個空格之前的&序列),接着是零個或多個空白

+0

哈哈謝謝,我是一個完整的noob,當涉及正則表達式的:( – Polaris878 2011-06-16 21:40:19