我寫了下面的正則表達式在Java中過濾其它字符:如何僅使用Java中的正則表達式過濾其他字符?
this.myTextField.matches("[\\W]*");
的問題是,這種表達的篩選器的其他人物和突變元音。
我需要一個表達式,它只過濾像<>!"§$%()=}{
這樣的附加字符,並且必須是例外öäüß
等例外變異元音。
我寫了下面的正則表達式在Java中過濾其它字符:如何僅使用Java中的正則表達式過濾其他字符?
this.myTextField.matches("[\\W]*");
的問題是,這種表達的篩選器的其他人物和突變元音。
我需要一個表達式,它只過濾像<>!"§$%()=}{
這樣的附加字符,並且必須是例外öäüß
等例外變異元音。
嘗試用[^\\p{L}]*
替換[\\W]*
。
\W
表示不在[A-Za-z0-9_]
之內的任何內容,包括unicode字母。
的\p{L}
,如圖here是一個字符集它表示從任何語言任何種類的信。因此,[^\p{L}]
表示任何字符都不是任何語言的字母。
這是你想要的嗎?
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"
嘗試更換'[<>!「§$%()=} {]'與空字符串 – nu11p01n73R
使用'[^ \\wöäü] *'根據需要添加到字符類多個字符。正你確定你只需要匹配元音?'\\ P {L} *'將匹配除Unicode字母以外的所有字符 - 也許你需要它。或者'[\\ P {L} \\ P {M}] *'以匹配非變音符號。 –