Esta cadena literal:
"\\[.+?\\]"
significa esta cadena:
\[.+?\]
Así que esta expresión:
Pattern.compile("\\[.+?\\]");
significa esta expresión regular:
\[.+?\]
que significa "literal [
, seguido de uno o más caracteres — preferiblemente el menor número posible — seguido de ]
". (.
significa "cualquier carácter que no sea línea nueva"; +?
significa "uno o más de lo que acabo de decir, y preferiblemente el menor número posible".) Por lo general, la expresión regular coincide con [____]
, donde ____
puede contener cualquier cosa que no contenga una nueva línea, siempre que tenga al menos un carácter; y donde ____
no (normalmente) contiene un ]
excepto posiblemente como el primer caracter.
Para obtener más información acerca de Pattern
y expresiones regulares en Java, consulte the documentation for the Pattern
class.
Muy buena explicación. Especialmente el caso de esquina donde la expresión regular coincide con '[] ...]' es importante mencionar. –
increíble, gracias! – user1291453
@ user1291453: ¡De nada! – ruakh