Dúvida com REGEX Java?

1 resposta
regexjava
marcos4ft

Tenho a seguinte String?

123|XXXXXX|567|ABC,

Tenho a seguinte regex

"^(?!\\d+\\|XXXXXX\\|\\d+\\|\\w+)";

Em teoria, se altero a minha String para 123|YYYYY|567|ABC, ao fazer o matches, não deveria retornar true não?

String s1 = 123|XXXXXX|567|ABC;

String s2 = 123|YYYYYY|567|ABC;

String regex = ^(?!\d+\|XXXXXX\|\d+\|\w+)”;

System.out.println(s1.matches(regex)); //Retorna False

System.out.println(s2.matches(regex)); // Retorna False

O que eu preciso na verdade é q sempre q minha String for 123|XXXXXX|567|ABC retorne false, qualquer valor diferente de X retorne true

1 Resposta

Rodrigo_Void

Olá,
remove o ?! e nega o resultado.
Vai retornar true com X e false com outra coisa, mas é só negar o resultado:
!s1.matches(regex)
é mais fácil doq fazer na regex.

Criado 4 de abril de 2017
Ultima resposta 4 de abr. de 2017
Respostas 1
Participantes 2