As expressões regulares são usadas para uma variedade de tarefas, mas a que vejo com mais frequência é a validação de entrada. Nomes, datas, números… temos a tendência de usar expressões regulares para tudo, mesmo quando provavelmente não deveríamos.

A sintaxe mais comum para verificar caracteres alfabéticos é A-z mas e se a string contiver caracteres acentuados? Caracteres como ğ e Ö farão com que a regex falhe. É nesse ponto que precisamos usar escapes de propriedade Unicode para verificar se há um formato de letra mais amplo!

Vamos ver como podemos usar o \p{Letter} e o sinalizador Unicode (u) para corresponder aos caracteres padrão e acentuados:

// Single word
"Özil".match(/[\p{Letter}]+/gu)

// Word with spaces
"Oğuzhan Özyakup".match(/[\p{Letter}\s]+/gu);

Usar expressões regulares para validar cadeias de caracteres, especialmente nomes, é muito mais difícil do que A-z+. Os nomes e outras cadeias de caracteres podem ser muito diversos – não vamos insultar os usuários fazendo com que eles forneçam letras sem acento apenas para passar na validação!