我希望确保一个字符串只包含字母字符(包括特殊字符如"é"、"è"、"ç"、"Ç"、"ï"
等)。
我已经尝试这样做,但是带有特殊字符的字符串返回false...
if (myString.matches("^[a-zA-Z]+$")) {
return true;
}
感谢大家!
您可以使用 Unicode 类别: \\p{L}
或 \\P{Letter}
来匹配任何语言的任何字母。
if (myString.matches("\\p{L}+")) {
return true;
}
顺便提一下,String.matches
方法会尝试匹配整个字符串,所以不需要使用 ^
和 $
锚点。
[\\s\\p{L}]+
。 - falsetru
\p{L}
表达式可以匹配来自许多字母表的成千上万个字符。 - Boann