我编写了以下正则表达式来过滤Java中的其他字符:
this.myTextField.matches("[\\W]*");
问题在于,这种表达方式会过滤掉其他字符和变异的元音。
我需要一个仅过滤诸如
<>!"§$%()=}{
之类的附加字符的表达式,并且必须排除诸如öäüß
之类的变异元音。 最佳答案
尝试用[\\W]*
替换[^\\p{L}]*
。\W
表示不属于[A-Za-z0-9_]
的任何内容,包括unicode字母。
如here所示,\p{L}
是一个字符集,表示来自任何语言的任何种类的字母。因此,[^\p{L}]
表示不是任何语言的字母的任何字符。