Estoy usando apache camel 2.11 y camel-script 2.2 para soporte de javascript con Spring DSL.
Quería hacer un reemplazo de expresiones regulares con grupos, pero eso no parece funcionar en camello.
Ej .: - en una transformada, los siguientes trabajos.
<javaScript>request.body.toString().replace("Y","X")</javaScript>
es decir, cambiar YZ a XZ
Pero lo siguiente no:
<javaScript>request.body.toString().replace("/(Y)(.*)$/g","$1")</javaScript>
es decir. Cambia YZXXX a Y
He probado la expresión regular en sí https://regex101.com/, así que no creo que sea un problema de sintaxis en la expresión regular
Ahora es posible que camel-script solo ofrezca soporte parcial de javascript. Pero no estoy seguro de si ese es el caso. ¿algunas ideas?
Respuestas
1 para la respuesta № 1Encontré el problema :-)
El problema es: - Estaba asumiendo que Camel javascript puede usar funciones de javascript ... cuando en realidad llama funciones de java.
El cambio del código a la sintaxis java (llamar a la función replaceAll () con la sintaxis java para expresiones regulares) resolvió el problema.
0 para la respuesta № 2
Necesitas usar un regex, no una cadena parece una expresión regular. Comparar:
Incorrecto:
request.body.toString().replace("/(Y)(.*)$/g","$1")
Correcto:
request.body.toString().replace(/(Y)(.*)$/g, "$1")
Dicho esto, la barra invertida en su patrón de reemplazo es superflua. "$1"
sería correcto