util sheet matches cheat java regex

sheet - ¿Por qué esta expresión regular de Java causa errores de "carácter de escape ilegal"?



java util regex (6)

Estoy trabajando en una solución a una pregunta anterior , lo mejor que pueda, utilizando expresiones regulares. Mi patrón es

"/d{4}/w{3}(0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]){2}"

Según NetBeans, tengo dos personajes de escape ilegales. Supongo que tiene que ver con / d y / w, pero ambos son válidos en Java. Quizás mi sintaxis para una expresión regular de Java está desactivada ...

La línea completa de código involucrada es:

userTimestampField = new FormattedTextField( new RegexFormatter( "/d{4}/w{3}(0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]){2}" ));


¿Has probado esto?

//d{4}//w{3}(0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]){2}


¿Intentaste "//d" y "//w" ?

-edit- Lol publiqué la respuesta correcta y me voté y luego me di cuenta de que se escapa de las barras invertidas, por lo que mi respuesta pareció incorrecta :)


¿Qué pasa con lo siguiente: //d{4}//w{3}(0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]){2}


Creo que necesitas agregar los dos accesos directos de escape en las clases de personajes. Intente esto: "[/d]{4}[/w]{3}(0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]){2}"

--Buena suerte.


Suponiendo que esta expresión regular está dentro de un literal de String Java, necesita escapar de las barras invertidas para sus etiquetas /d y /w :

"//d{4}//w{3}(0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]){2}"

Esto se vuelve más, bueno, francamente, cuando quieres hacer coincidir las barras invertidas:

public static void main(String[] args) { Pattern p = Pattern.compile("////////"); //ERM, YEP: 8 OF THEM String s = "////"; Matcher m = p.matcher(s); System.out.println(s); System.out.println(m.matches()); } // //JUST TO MATCH TWO SLASHES :( true


todo lo que necesitas hacer es poner

*/ ex: string ex = ''this is the character: *//s'';

Antes de tu personaje inválido y no 8 / !!!!!