Expressão regular para decimal em banco de dados oracle  XML
Índice dos Fóruns » Outras Linguagens
Autor Mensagem
otaviopfonseca
Entusiasta Java

Membro desde: 20/06/2011 21:24:56
Mensagens: 21
Offline

Olá,

Preciso de uma expressão regular que valide um campo de texto com um número decimal para ser passado para uma coluna NUMBER(9,3) de um banco de dados oracle. O número deve conter no máximo 9 dígitos, sendo que 3 destes podem ou não ser casas decimais, por exemplo:

23.10 --> PASSA
23.109 --> PASSA
23.1109 --> NÃO PASSA
232323232 --> PASSA
12345678.3 --> PASSA
-12345678 --> PASSA
-123456789 --> NÃO PASSA
123456.789 --> PASSA
1234567.89 --> PASSA
123456.789 --> PASSA
1123456.789 --> NÃO PASSA
-12345.678 --> PASSA
-123456.789 -- NÃO PASSA

Resumindo, o número deve conter no máximo 3 dígitos decimais e no máximo 9 no total. Eu já fiz esta expressão:



Ela consegue validar a quantidade de dígitos depois do ponto e o sinal de + ou - no início. Consegue também validar se o número possui 9 dígitos antes do ponto, mas não considera os depois do ponto, portanto não é o desejado. Alguém tem uma ideia sobre como corrigir esta expressão? Desde já agradeço.
otaviopfonseca
Entusiasta Java

Membro desde: 20/06/2011 21:24:56
Mensagens: 21
Offline

Consegui melhorar a expressão, agora ela aceita no máximo 9 caracteres, mas não ignora o ponto.

This message was edited 1 time. Last update was at 07/02/2012 14:52:15

otaviopfonseca
Entusiasta Java

Membro desde: 20/06/2011 21:24:56
Mensagens: 21
Offline

Consegui resolver de uma outra maneira utilizando split no ponto e utilizando o length das substrings geradas
 
Índice dos Fóruns » Outras Linguagens
Ir para:   
Powered by JForum 2.1.8 © JForum Team