Como montar expressão regular?

Alguém conhece um site que ao colocar o numero ele já mostre a expressão regular automaticamente?

É porque estou tentando montar uma pressão regular com duas casas decimais, assim como mostra abaixo;
1.500,00

http://www.regexp.com.br/

1 curtida

A seguinte regex deve atender sua necessidade: "\\d{1,3}[\\.\\d{3}]*\\,\\d{2}"

Exemplo:

String[] numeros = new String[] {
        "1",
        "1.1",
        "1.12",
        "1.123",
        "1,1",
        "1,12",
        "1,123",
        "12",
        "12.1",
        "12.12",
        "12.123",
        "12,1",
        "12,12",
        "12,123",
        "123",
        "123.1",
        "123.12",
        "123.123",
        "123,1",
        "123,12",
        "123,123",
        "1.234",
        "1.234.1",
        "1.234.12",
        "1.234.123",
        "1.234,1",
        "1.234,12",
        "1.234,123",
        "12.345",
        "12.345.1",
        "12.345.12",
        "12.345.123",
        "12.345,1",
        "12.345,12",
        "12.345,123",
        "123.456",
        "123.456.1",
        "123.456.12",
        "123.456.123",
        "123.456,1",
        "123.456,12",
        "123.456,123",
        "1.234.567",
        "1.234.567.1",
        "1.234.567.12",
        "1.234.567.123",
        "1.234.567,1",
        "1.234.567,12",
        "1.234.567,123",
};

String regex = "\\d{1,3}[\\.\\d{3}]*\\,\\d{2}";

StringBuilder validos = new StringBuilder();
StringBuilder invalidos = new StringBuilder();
for (String numero : numeros) {
    if (numero.matches(regex)) {
        validos.append(numero).append("\n");
    } else {
        invalidos.append(numero).append("\n");
    }
}

System.out.println("VALIDOS:\n" + validos);
System.out.println("INVALIDOS:\n" + invalidos);

Eu me enganei, o cliente não queria assim 1.500,00, ele quer assim 1500,00
Por favor, como ficaria dessa vez?

A regex que tu te passei ( "\\d{1,3}[\\.\\d{3}]*\\,\\d{2}" ) possui 4 partes distintas:

  1. De um à três dígitos; ( \\d{1,3} )
  2. Um ponto seguido de três dígitos, podendo ocorrer nenhuma ou várias vezes; ( [\\.\\d{3}]* )
  3. Uma vírgula; ( \\, )
  4. Dois dígitos. ( \\d{2} )

Monte sua regex com as seguintes 3 partes:

  1. Um ou mais dígitos; ( seu dever estudar como se faz isso )
  2. Uma vírgula; ( já tem exemplo na regex anterior )
  3. Dois dígitos. ( já tem exemplo na regex anterior )

Dica, a documentação da classe Pattern do Java traz bastante informações acerca de expressões regulares.