Pessoas…
Eu toh com uma duvida sobre REGEX!
Eu preciso criar uma expressão regular que não libere 0,00
ou seja, todos os valores diferentes disso são validos. Incluindo letras, numero, simbolos, etc…
Tem como?
VELO
Pessoas…
Eu toh com uma duvida sobre REGEX!
Eu preciso criar uma expressão regular que não libere 0,00
ou seja, todos os valores diferentes disso são validos. Incluindo letras, numero, simbolos, etc…
Tem como?
VELO
Não tem, a forma mais simples é vc ver se a expressão casa e inverter logicamente o seu resultado.
Cool…
Nu caso, tomei no cool…
VELO
Calma… nessa vida só não há jeito pra morte!
Se por acaaaso vc quiser dar um “match” só em coisas nesse formato (e EXATAMENTE neste formato):
<1_caracter_que_não_o_zero>,<1_caracter_que_não_o_zero><1_caracter_que_não_o_zero>
Essa regex aqui funciona:
String regex = "[^0],..|.,[^0].|.,.[^0]";
Qq coisa, pergunte mais
Hhehehe, pra morte e pra projeto de software atrasado =D
bem…
public class RegexSando {
public static void main(String[] args) {
String regex = "[^0],..|.,[^0].|.,.[^0]";
String v1 = "0,00";
String v2 = "0,01";
String v3 = "1,01";
String v4 = "10.120,01";
String v5 = "1.000,00";
String v6 = "aaa";
String v7 = "t@tt&&";
//Apenas V1 deve dar false!
System.out.println(v1.matches(regex));
System.out.println(v2.matches(regex));
System.out.println(v3.matches(regex));
System.out.println(v4.matches(regex));
System.out.println(v5.matches(regex));
System.out.println(v6.matches(regex));
System.out.println(v7.matches(regex));
}
}
Não deu certo… o match para 10.120,01 dá false…
VELO
É o que eu disse: Aquele regex era só para um texto de 4 caracteres…
O problema é que não existe (pelo menos eu não conheço) iteração dentro de uma regex. Acho que a melhor opção para você seria algo assim:
import javax.swing.JOptionPane;
public class NaoNecessariamenteRegexSando {
public static void main(String[] args) {
while(true) {
String str = JOptionPane.showInputDialog("Entra um texto aê, maluco!");
if(str == null)
System.exit(0);
String
msg = "Beleza!!!",
regex = "(\d(\d(\d)?)?(\.\d\d\d)*),\d\d";
if(str.matches(regex))
if(Double.parseDouble(str.replaceAll("\.", "").replaceAll(",", ".")) == 0)
msg = "Fuck you, man!";
JOptionPane.showMessageDialog(null, msg);
}
}
}
ah como eu queria poder usar um Double.parseDouble…
Meu, tuh nem imagina o quanto eu queria!
Xa pra lá, passei pra outro cara isso, ele q resolva ou mude o requisito =D
VELO
não é mais facil pesquisar se 0,00 mostra exception caso contrario blz ?
if (!valor.equals("0,00")) { ... }
É isso, ou eu não entendi direito sua pergunta?
Suei, mas tá aí sua resposta!!
[code]public class RegexSando {
public static void main(String[] args) {
String regex = new String();
// ER padrao - Exclui o valor '0,00'
regex = "([^0].*)|(0,[^0].*)|(0,0[^0].*)";
/*
* ER complemento - evita exclusao de valores como '000', '0,000', '0000'
* (.{0,3}) - palavra <= 3 caracteres
* (.{5,}) - palavra >= 5 caracteres
* (0[^,].*)- palavra iniciada com 0 que nao tenha virgula na indice 1
*/
regex += "|(.{0,3})|(.{5,})|(0[^,].*)";
String v1 = "0,00";
String v2 = "0,10";
String v3 = "1,01";
String v4 = "10.120,01";
String v5 = "1.000,00";
String v6 = "aaa";
String v7 = "t@tt&&";
String v8 = "0000";
String v9 = "0,000";
//Apenas V1 deve dar false!
System.out.println(v1.matches(regex));
System.out.println(v2.matches(regex));
System.out.println(v3.matches(regex));
System.out.println(v4.matches(regex));
System.out.println(v5.matches(regex));
System.out.println(v6.matches(regex));
System.out.println(v7.matches(regex));
System.out.println(v8.matches(regex));
System.out.println(v9.matches(regex));
}
}[/code]
ASCLOWS…
Ficou foda!!!
VELoooOOOooooOO
Esta ai a solucao, ficou show!!!
[Add Favorites!!]
Pra galera aí que vira e mexe tem que lidar com expressões regulares indico o livro do Aurélio Marinho Jargas.
Expressões Regulares - Uma abordagem divertida
http://aurelio.net/er/livro/
O livro é simplesmente excelente, muito bem humorado, você racha de tanto rir e aprende facilmente a lidar com as mais diversas ERs. O Aurélio realmente caprichou abordando a aplicação de ERs nas mais diversas linguagens e editores de texto.
Não estou fazendo uma propaganda, só uma recomendação pra galera pq para resolver o problema do nosso amigo acima simplesmente me inspirei em algumas explicações do Aurélio e pronto.