2016-03-14 58 views
1

這個正則表達式適用於單詞變量,但它從定義變量中刪除所有不需要的空白。無法理解原因。正則表達式只保留字母和空格?

String word = "cheese[1]" 

String definition = "[:the quality of being too obviously sentimental]" 

String regex = "[^A-Za-z]+";  // how to get it to exclude whitespace? 

finaldefinition = finaldefinition.replaceAll(regex,"") 

輸出:

字=奶酪

定義= thequalityofbeingtooobviouslysentimental

期望的結果:

字=奶酪

定義=的過於明顯的感傷

感謝您的時間質量。

+0

「'[^ A-ZA-Z] + 「' –

+0

或者'[^ A-Za-z \ s] +'如果你想保留標籤和其他形式的空格。 – Evert

+0

哈哈謝謝。是這麼簡單吧? /捂臉 –

回答

0

您是否正在尋找?

public static void main(String[] args) {   
    String[] strs = new String[] {"cheese[1]", "[:the quality of being too obviously sentimental]"}; 
    for (String m: strs){ 
     System.out.println(m.replaceAll("[^a-zA-Z ]", ""));  
} 

輸出:

cheese 
the quality of being too obviously sentimental 
0

您可以使用[^A-Za-z ]+爲:

  • 任何字符,除了
    • captial字母
    • 小寫字母
    • 空白

或者[^A-Za-z\s]+爲:

  • 任何字符,除了
    • captial字母
    • 小寫字母
    • 個空格(空格,製表符,換行符)

第三種選擇:更換\s第一,使標籤和linebraks將獲得空白

相關問題