如何扩展此替换表达式以添加奇怪的字母字符,如“ü”?

时间:2015-05-24 13:18:50

标签: java android regex

我在这里有这个替换表达式:

 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'-]", "");

它仍然取代了角色。

2 个答案:

答案 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十六进制)

匹配字符