Deshágase de las barras diagonales. No necesitas los de Java. Además, el sabor de regex de Java no reconoce los switches como /g
y /i
; esos están controlados por constantes en java.util.regex.Pattern
.
Los únicos modificadores Javascript regex que tienen sentido en el mundo Java son /i
y /m
. Estos mapas a Pattern.CASE_INSENSITIVE
y Pattern.MULTILINE
(puede usar estos modificadores al crear una expresión regular de la clase Pattern
, o puede usarlos en línea; lo mostraré más adelante).
El /g
no se asigna a nada, pero se puede controlar mediante el uso de reemplazar el comportamiento frente String.replaceAll
String.replaceFirst
.
para obtener su código para trabajar, que tendría que hacer algo como esto:
strOutput.replaceAll("{{[^]*?}}", "");
Si desea utilizar interruptores, lo que necesita hacer añadir algo como (?i)
al comienzo de la expresión regular.
No puede usar String.replace
porque toma un CharSequence
para el primer argumento y no una expresión regular.
También tenga en cuenta que los métodos de "expresiones rápidas rápidas" que ofrece la clase String
pueden no funcionar como esperaba. Esto se debe a que cuando especifica un patrón (digamos abc
) como una expresión regular para matches
, por ejemplo, el patrón real visto por Java es ^abc$
. Entonces abc
coincidirá, pero bc
no lo hará.
Hay más información here.
¿Puedes publicar la Java que creaste que te dio el error? –