String filter = "a-zA-Z0-9äöüÄÖÜß-\\.";
"^[^" + filter + "]*$", ""
inputtext.replaceAll("^[^" + filter + "]*$", "");
Run Code Online (Sandbox Code Playgroud)
这个Java RegEx过滤器应该从inputtext中删除除过滤器中的字符之外的所有字符,但是我得到一个异常,说明不允许使用该点.我已经用两个斜线逃脱了点.怎么了?
移动-到最后:
String filter = "a-zA-Z0-9äöüÄÖÜß.-";
Run Code Online (Sandbox Code Playgroud)
短划线表示字符范围,点不是范围的有效结束.您也不想在那里定义范围.将它移到最后可以解决问题.
顺便说一句.如果要删除与过滤器不匹配的所有字符,则需要更改替换:
inputtext = inputtext.replaceAll("[^" + filter + "]", "");
Run Code Online (Sandbox Code Playgroud)
你拥有它的方式,它只会替换所有字符都不在该类中.