2015-09-25 22 views
1

我寫了下面的正則表達式在Java中過濾其它字符:如何僅使用Java中的正則表達式過濾其他字符?

this.myTextField.matches("[\\W]*"); 

的問題是,這種表達的篩選器的其他人物和突變元音。

我需要一個表達式,它只過濾像<>!"§$%()=}{這樣的附加字符,並且必須是例外öäüß等例外變異元音。

+0

嘗試更換'[<>!「§$%()=} {]'與空字符串 – nu11p01n73R

+0

使用'[^ \\wöäü] *'根據需要添加到字符類多個字符。正你確定你只需要匹配元音?'\\ P {L} *'將匹配除Unicode字母以外的所有字符 - 也許你需要它。或者'[\\ P {L} \\ P {M}] *'以匹配非變音符號。 –

回答

1

嘗試用[^\\p{L}]*替換[\\W]*

\W表示不在[A-Za-z0-9_]之內的任何內容,包括unicode字母。

\p{L},如圖here是一個字符集它表示從任何語言任何種類的信。因此,[^\p{L}]表示任何字符都不是任何語言的字母。

0

這是你想要的嗎?

String dirtyString = " This*is#a*&very_dirty&String"; 
System.out.print(dirtyString.replaceAll("[^a-zA-Z0-9 ]"," ")); // Replace all with " " 
                   // except a-z, A-Z, 0-9 
                   // and space. 

// prints "This is a very dirty String" 
相關問題