Executando verificação de segurança...
3

[Lua] verificando se o input consiste em caracteres alfabeticos ou não.

Como verificar letra ou número em Lua?

Para determinar se o input é uma letra ou número, empregamos a função :match(), a qual verifica se o caractere é uma letra ou não.

Exemplo

Print('Por favor, informe uma letra de a-z')
local letter = tostring(io.read())

if letter:match('^[a-zA-Z]+$') then
    print('A letra informada foi ' ..letter)
else
   print('Digite somente caracteres alfabéticos.')
end
Carregando publicação patrocinada...
6

Explicando um pouco mais, nesse código foi usado regex, ou seja, expressão regulares.
Na expressão '^[a-zA-Z]+$' Existem metacaracteres, ou seja, caracteres com um significado especial.
Em vez de representar seu próprio valor literal, é usado para definir regras na correspondência de texto.
^ - Este é um metacaracter que indica início
[]- Estes indicam uma lista
[a-z] - neste caso letras minúsculas de 'a' até 'z'
[a-zA-Z] - Aqui letras minúsculas e maiúsculas.
+ - É um dos metacaractere quantificador, pois indica a quantidade necessária para a correspondência, neste caso + indica 1 ou mais (o quê? ver à esquerda deste), nesta expressão em particular 1 ou mais letras.
$ - Este metacaracter indica fim

Não irá corresponder palavras como:
guarda-chuva (porque tem hífen)
planeta terra (porque tem espaço)
52A (porque não começa '^' com letras '[a-zA-Z'] e também não termina com letras na quantidade de 1 ou mais)

Neste site dá para testar valores usando a expressão regular acima
https://regex101.com/

0
2
2