Tengo un pequeño código de reliquia escrito en Javascript que escanea una fuente de la página web y busca el patrón.
Estoy migrando la funcionalidad a un programa Java. Entonces, mi pregunta es ¿cómo puedo analizar una expresión regular de JavaScript a una Java con algún tipo de función de buscar y reemplazar?
Por ejemplo, mi JavaScript Regex actualmente lee (como una cadena)
RegEx = "/(\/addthis_widget\.(js|php)|\.addthis\.com\/js\/widget\.(js|php))/i";
Encontré este viejo post en stackoverflow:
¿Cómo convertir regex javascript a regex java seguro?
lo que sugiere que esto haría el truco:
strOutput.replace("/{{[^]*?}}/g","");
Sin embargo, esto no parece lo suficientemente robusto y no produce un RegEx que sea reconocido por el compilador.
Respuestas
1 para la respuesta № 1Eliminar la / al principio y / i al final. Añadir (? I) al principio.
Java no usa /expr/options
formato. /expr/G
sería reemplazado por la coincidencia de límites G, pero en java generalmente solo llamas matcher.find()
varias veces, y comenzará la búsqueda de la coincidencia al final de la anterior automáticamente, haciendo que G no tenga sentido.
Cambia todo \/
a /
, las barras diagonales hacia adelante no necesitan ser escapadas.