Como validar com regex uma string contendo apenas letras, espaços em branco e letras com acento?
Para validar uma string que contém apenas letras, espaços em branco e letras com acento utilizando uma expressão regular (regex), você pode usar o seguinte padrão:
^[\p{L}\s]+$
Vamos analisar o padrão:
^
indica o início do texto.[\p{L}\s]
define uma classe de caractere que corresponde a letras e espaços em branco.+
indica que a classe de caractere pode ocorrer uma ou mais vezes.$
indica o final do texto.
A classe de caractere [\p{L}\s]
é responsável por corresponder a todas as letras (com ou sem acento) e espaços em branco. A notação \p{L}
é uma classe Unicode que corresponde a qualquer letra, incluindo letras com acento.
Aqui está um exemplo de código em Python que realiza a validação:
import re
def validar_string(texto):
padrao = r'^[\p{L}\s]+$'
if re.match(padrao, texto):
return True
return False
texto_valido = "Olá mundo! É um dia ensolarado."
texto_invalido = "12345@#$"
print(validar_string(texto_valido))
print(validar_string(texto_invalido))
A saída desse código será:
True
False
No exemplo acima, a função validar_string
recebe uma string como entrada e utiliza a função re.match
do módulo re
para verificar se o padrão corresponde à string completa. Se a correspondência for encontrada, a função retorna True
, indicando que a string é válida. Caso contrário, retorna `False’, indicando que a string é inválida.