我在这里有这个替换表达式:
String firstName = mFirstName.getText().toString().trim().replace(" ", "");
String lastName = mLastName.getText().toString().trim().replace(" ", "");
firstName = firstName.replaceAll("[^A-Za-z'-]", "");
lastName = lastName.replaceAll("[^A-Za-z'-]", "");
它的效果非常好而且很快。但它不允许使用国际ascii字符128-165,就像变音符号一样。但我不希望在字符串中包含“()| - ”之后的字符。有没有办法包括所有的一个替换所有,或者我必须将它分成多个表达式?
这是我尝试过的(失败的):
firstName = firstName.replaceAll("[^A-Za-zÀ-Ÿ'-]", "");
lastName = lastName.replaceAll("[^Alpha'-]", "");
它仍然取代了角色。
答案 0 :(得分:3)
您可以使用匹配 letter 的任何Unicode字符的\p{L}
。
String strUmlaut = "ÀèŸ";
System.out.println(strUmlaut.matches("\\p{L}+"));
<强> 输出 强>
true
答案 1 :(得分:1)
[^A-Za-z\\x80-\\xa5'-]
还将使用ASCII代码128-165(80 - A5十六进制)