我编写了以下正则表达式来过滤Java中的其他字符:
this.myTextField.matches("[\\W]*");
问题是,这种表达过滤了额外的字符和变异的元音。
我需要一个只过滤<>!"§$%()=}{
等附加字符的表达式,并且必须排除öäüß
之类的变异元音。
答案 0 :(得分:0)
尝试将[\\W]*
替换为[^\\p{L}]*
。
\W
表示不在[A-Za-z0-9_]
范围内的任何内容,包括unicode字母。
\p{L}
,如图所示here是一个字符集,表示来自任何语言的任何类型的字母。因此,[^\p{L}]
表示任何不是任何语言字母的字符。
答案 1 :(得分: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"