Expressões regulares.

1. Expressões regulares.

Vinicus S Moraes
vsmoraes

(usa Arch Linux)

Enviado em 06/01/2009 - 18:34h

Ae povo, beleza?
Seguinte, sou um estúpido em expressões regulares e me deparei com um problema: Preciso de uma expressão regular que case com o seguinte padrão.
- A string a ser comparada só pode ter números e/ou estar em branco.

Em vários lugares eu achei a seguinte expressão:

- ^[0-9]*\$

Só que ela não funciona, não comigo. Lendo um tutorial aqui, um artigo ali, eu idealizei a seguinte expressão:

- [0-9]|^$

Essa funcionou!!!
Só que agora veio a dúvida, qual a diferença entre [0-9]|^$ e ^[0-9]*\$ ?


  


2. Re: Expressões regulares.

Denis Doria
thuck

(usa Debian)

Enviado em 06/01/2009 - 19:32h

[0-9]|^$ e ^[0-9]*\$

[0-9]|^$ - que tenha um número ou que tenha uma linha em branco, exemplo:
thuck@thuck:~/programacao/scripts$ echo a3f|egrep '[0-9]|^$'
a3f
thuck@thuck:~/programacao/scripts$ echo 4443|egrep '[0-9]|^$'
4443
thuck@thuck:~/programacao/scripts$ echo aaaa|egrep '[0-9]|^$'
thuck@thuck:~/programacao/scripts$

^[0-9]*\$ - que comece por um número, e tenha N números até terminar, exemplo:

thuck@thuck:~/programacao/scripts$ echo '1'|egrep '^[0-9]*$'
1
thuck@thuck:~/programacao/scripts$ echo 'a1'|egrep '^[0-9]*$'
thuck@thuck:~/programacao/scripts$ echo '33331'|egrep '^[0-9]*$'
33331

Pelo que vc disse, nenhuma das duas resolve seu problema... Creio que o certo seria algo assim:

thuck@thuck:~/programacao/scripts$ echo '333'|egrep '^[0-9]*$|^$'
333
thuck@thuck:~/programacao/scripts$ echo ''|egrep '^[0-9]*$|^$'

thuck@thuck:~/programacao/scripts$ echo 'aaa'|egrep '^[0-9]*$|^$'
thuck@thuck:~/programacao/scripts$ echo '1aaa'|egrep '^[0-9]*$|^$'
thuck@thuck:~/programacao/scripts$ echo '1aaa3'|egrep '^[0-9]*$|^$'

Lembrando que as expressões regulares variam de softwares para softwares.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts