Java:字符串模式:如何指定所有带特殊字符的字母字符的正则表达式。

7

我希望确保一个字符串只包含字母字符(包括特殊字符如"é"、"è"、"ç"、"Ç"、"ï"等)。

我已经尝试这样做,但是带有特殊字符的字符串返回false...

if (myString.matches("^[a-zA-Z]+$")) {
    return true;
}

感谢大家!

你想匹配仅拉丁字母还是所有字母表中的字母?\p{L}表达式可以匹配来自许多字母表的成千上万个字符。 - Boann
1个回答

7

您可以使用 Unicode 类别: \\p{L}\\P{Letter} 来匹配任何语言的任何字母。

if (myString.matches("\\p{L}+")) {
    return true;
}

顺便提一下,String.matches 方法会尝试匹配整个字符串,所以不需要使用 ^$ 锚点。


falsetru,带有空格字符? - anthony
@anthony,您可以使用字符类一起匹配:[\\s\\p{L}]+ - falsetru

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接