2015-09-29 54 views
1

我正在尋找一個正則表達式來刪除字符串末尾的字符,這些字符不是必需的,但可能會在字符串的早期出現(這是預期的和良好的)。什麼是一個很好的正則表達式從字符串的末尾刪除多餘的字符?

這裏的應該解決一個例子 「卡佛HOUSE - 廚房」

CARVER HOUSE - KITCHEN(
CARVER HOUSE - KITCHEN[ 
CARVER HOUSE - KITCHEN - (
CARVER HOUSE - KITCHEN : 

這裏是一個要解決另一個例子 「卡佛HOUSE:(NIGHT)[N1] - 廚房」

CARVER HOUSE : (NIGHT)[N1] - KITCHEN(
CARVER HOUSE : (NIGHT)[N1] - KITCHEN[ 
CARVER HOUSE : (NIGHT)[N1] - KITCHEN - (
CARVER HOUSE : (NIGHT)[N1] - KITCHEN : 

所以基本上,應該找到最後一個字母或數字,其他所有內容都會被刪除。

此外,我不是在尋找一個很大的混亂方法,逐個字符地查找最後一個字母數字。這應該可以在一行或兩行代碼中完成。

感謝

+2

你嘗試過什麼嗎? – Reimeus

+0

嘗試像'「\ W + $」'爲「字符串末尾的非字符字符串」? –

+0

@Reimeus我已經嘗試了一些東西,但它們並不漂亮(完全)。我正在考慮扭轉絃樂,看看它是否奏效,然後扭轉它,但這似乎也很麻煩。 –

回答

7

您可以在字符串末尾使用正則表達式像\W+$找到非字字符和替換那些。

String s = "CARVER HOUSE : (NIGHT)[N1] - KITCHEN - ("; 
s = s.replaceAll("\\W+$", ""); 
System.out.println(s); 

結果是CARVER HOUSE : (NIGHT)[N1] - KITCHEN

相關問題