正则表达式匹配字母字符

2022-09-04 01:08:19

我有这个正则表达式:

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

它接受从A到Z作为小写和大写。也接受空格。

但这只适用于英语。例如,在加泰罗尼亚语中,我们有“ç”字符。此外,我们还有带有“á”或“à”等字符。

做了一些谷歌,我找不到任何方法来做到这一点。

我发现我可以过滤UTF-8,但这会接受不是真正字母的字符。

如何实现此目的?


答案 1

使用此正则表达式:

[\p{L}\s]+

\p{L}表示任何 Unicode 字母。

fiddle.re 演示


答案 2

查看文档并使用类(例如 )。\p{InLATIN_1_SUPPLEMENT}