Estou tentando escrever uma expressão regular que permita apenas letras minúsculas e até 10 caracteres. O que eu tenho até agora é assim:
pattern: /^[a-z]{0,10}+$/
Isso não funciona ou compila. Eu tinha uma que funcionava, que apenas permitia letras minúsculas, que era esta:
pattern: /^[a-z]+$/
Mas preciso limitar o número de caracteres para 10.
^[a-z]{0,10}+$
compilado em algumas linguagens e algumas das mais notáveis são Java, Perl (5.10+), PHP, Ruby (1.9+). Veja esta página para mais detalhes.Respostas:
Você pode usar chaves para controlar o número de ocorrências. Por exemplo, isso significa 0 a 10:
As opções são:
Veja a referência da expressão regular .
Sua expressão teve um + após a chave de fechamento, daí o erro.
fonte
^
de jogo propriedade somente pedidos com um nome como1234
ou5678
, e eu tive que incluem o sinal $/^[a-z]{0,10}$/
Deveria trabalhar./^[a-z]{1,10}$/
se você quiser combinar pelo menos um caractere, como/^[a-z]+$/
faz.fonte
Pode ser benéfico adicionar correspondência gananciosa ao final da string, para que você possa aceitar strings> 10 e o regex retornará apenas até os 10 primeiros caracteres.
/^[a-z0-9]{0,10}$?/
fonte
Depende muito do programa que você está usando. Programas diferentes ( Emacs , vi , sed e Perl ) usam expressões regulares ligeiramente diferentes. Nesse caso, eu diria que no primeiro padrão, o último "+" deve ser removido.
fonte
Dá as contagens com contagem exata de correspondências com limite
fonte