Jump to content
Fórum Script Brasil
  • 0

Ajuda com expressoes regulares


THX1138

Question

Oi pessoal.

estou precisando de uma ajudinha da galera que manja expressões regulares (ainda tenho de aprender isso!!).

Preciso de uma expressão que aceite SOMENTE LETRAS (maiúsculas ou minúsculas). NÃO pode aceitar pontos nem barras nem ser de comprimento maior que 40 caracteres.

Toda ajuda é bem-vinda.

Valeu!

Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0

# se a expressão regular está de acordo com padrões POSIX:

/^[:alpha:]{1,40}$/

# se seu locale está setado corretamente para pt_BR(.ISO-8859-1 de preferência rs):

a expressão acima reconhece caracteres açêntuádos (brasil \o/).

# se você não tem "ExpressãoRegular POSIX" nem "locale pt_BR", ao modo C/ANSI:

/^[a-zA-ZáéíóúàâêôãõÁÉÍÓÚÀÂÊÔÃÕªºçÇ]{1,40}$/

- - -

explicando o acima:

# a sequência dentro das /barras/ quer dizer /é expressão regular/;

# os caracteres ^ e $ indicam que a comparação vai do ^inicio ao fim$ da string;

# entre {chaves} indica a repetição aceita dos caracteres indicados dentro dos colchetes;

# dentro dos [colchetes] só use o caractere hífen- para indicar que vai do caractere [indicado-até];

# se quer que o caractere hífen- seja um dos caracteres de comparação, coloca no [final-] ou [-inicio];

# a indicação :especial: indica um conjunto de caracteres definido no padrão POSIX:

pt.wikipedia.org/wiki/Expressão_regular#Classes_de_caracteres

- - -

livros:

expressões regulares (aurélio marinho jargas)

dominando expressoes regulares (jeffrey friedl)

Edited by fel
Link to post
Share on other sites
  • 0

teste seu programa para caracteres acentuados:

# chame a função que ordena a string abcdáç: tem de resultar aábcçd (ou áabçcd, não sei)

# chame a função que põe em caixa ALTA a string abcdáç: deve resultar ABCDÁÇ

# chame a função que verifica o tamanho da string abcdáç: deve ser 6

-

se não resultou:

# tenta de novo, após salvar seu arquivo no formato iso-8859-1

(tenho problema com utf-8 até agora, aí fujo ao sempre lá iso-8859-1 rsrs)

# modifica a variável ambiente LC_ALL e checa se atualizou com o utilitário locale

(teste seu programa com cada um: pt_BR.ISO-8859-1, en_US.ISO-8859-1, pt_BR.UTF-8)

# talvez seu programa desconsidere a variável ambiente, pra você chamar setlocale()

(mas os utilitários do sistema, levam em consideração a variável de ambiente)

# se setou locale, chamou a função, salvou como iso-8859-1, e falhou...

(pode ser a implementação: aconteceu comigo, era não-original)

Edited by fel
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      149390
    • Total Posts
      645880
×
×
  • Create New...