Регулярное выражение с латинскими символами

У меня есть это регулярное выражение:

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

Он принимает от А до Я как строчные и прописные. Также принимает пробелы.

Но это работает только для английского. Например, на каталанском мы имеем символ "ç". Также у нас есть символы с 'á', или 'à' и т.д.

Был ли какой-то Google, и я не смог найти способ сделать это.

Я узнал, что могу фильтровать для UTF-8, но это будет принимать символы, которые на самом деле не являются буквами.

Как это реализовать?

Ответ 1

Используйте это регулярное выражение:

[\p{L}\s]+

\p{L} означает любую букву Unicode.

fiddle.re Демо.

Ответ 2

Посмотрите документацию и используйте класс (например, \p{InLatin1Supplemental}).