2015-12-01 50 views
1

這是我的代碼。需要java正則表達式來獲得特定的輸出

String parsedValue = "(1234)"; 
if(!parsedValue.equals("")){ 
    parsedValue = parsedValue.replaceAll("\\(*\\)", "");//I can just change the regex but still need to use replaceAll method. 
} 
System.out.println(parsedValue); 

我得到的輸出:(1234
我的預期成果是:1234
基本上我想在兩端擺脫括號。 除了replaceAll方法外,我無法使用任何其他方法。代碼的那部分不在我的控制之下。我可以改變正則表達式。
任何形式的幫助,高度讚賞。

+0

供參考:'\\(* \\)'表示 「零個或多個'('S,接着是一個')'」。在你的字符串中唯一匹配的是末尾的''''。 –

回答

9

你只需要在任何地方目標字符,只能使用一個字符類:

parsedValue.replaceAll("[()]", ""); 

另外,如果你只希望定位是在開始或結束字符,請使用錨(^$ )和交替(|):

parsedValue.replaceAll("^\\(+|\\)+$", ""); 
+1

非常感謝。 Dint知道這很容易。 – user55926

+0

@Casimir你可以請解釋或給有用的鏈接,以瞭解你的第一個正則表達式 –

+1

@rupesh_padhye:關於正則表達式的任何基本教程應該足夠。 '[[...]''是一個字符類,意思是「其中一個字符」,所以'[()]'意思是「開始或結束的圓括號」。然後'replaceAll'將搜索所有的圓括號,並用空字符串替換每個字符串。 –