Estoy tratando de escribir una validación de cadena para que coincida con cualquier carácter (regular, dígito y especial) excepto =.
Esto es lo que he escrito –
String patternString = "[[^=][\\w\\s\\W]]*";
Pattern p = Pattern.compile(patternString);
Matcher m = p.matcher(str);
if(m.matches())
System.out.println("matches");
else
System.out.println("does not");
Pero coincide con la cadena de entrada “2009-09/09 12:23:12.5=” con el patrón.
¿Cómo puedo excluir = (o cualquier otro carácter, para el caso) de la cadena de patrón?
tripleee
If the only prohibited character is the equals sign, something like [^=]*
Deberia trabajar.
[^...]
es una clase de carácter negada; coincide con un solo carácter que es cualquier carácter excepto uno de la lista entre corchetes. *
repite la expresión cero o más veces.
-
como puedo hacer
[^=]*
juego\n
¿también?–Cameron Hudson
11 de junio de 2021 a las 17:36
-
No soy una persona de Java, pero mi primera coincidencia en un motor de búsqueda fue stackoverflow.com/a/30315738/874188
– triplete
11 de junio de 2021 a las 17:49
-
Hmm, gracias, pero mi caso de uso particular es buscar y reemplazar en VSCode.
–Cameron Hudson
13 de junio de 2021 a las 5:19
En primer lugar, no necesita una expresión regular. Simplemente llame contains
:
if(str.contains("="))
System.out.println("does not");
else
System.out.println("matches");
La expresión regular correcta que está buscando es solo
String patternString = "[^=]*";
-
Esto puede ser muy útil para el cartel original. Pero esta respuesta está muy lejos del texto específico de la pregunta, lo que lleva a miles de personas a esta página. Esta alternativa tiene mucho menos valor para ellos.
– ctpenrose
11 de marzo de 2019 a las 16:55
Si su objetivo es no tener ningún carácter = en su cadena, intente lo siguiente
String patternString = "[^=]*";
malhumorado
Si solo desea verificar la ocurrencia de “=”, ¿por qué no usa el método String indexOf ()?
if str.indexOf('=') //...
¿Qué estás tratando de igualar? (O no)? sólo [^=]* coincidirá con cualquier cosa menos el carácter ‘=’.
– Guillermo Polet
19 de marzo de 2012 a las 13:17
No puede anidar clases de caracteres.
[[]
es simplemente una clase de carácter que consiste en un único carácter[
.Mar 19, 2012 at 13:25