rubi regexp para reemplazar ecuaciones

Tengo un texto HTML en formato mathjax:

text = "an inline \\( f(x) = \frac{a}{b} \\) equation, a display equation \\[ F = ma \\] \n and another inline \\(y = x\\)" 

(Nota: las ecuaciones están delimitadas por barras oblicuas simples, por ejemplo, \( , no \\( , el extra \ está escapando del primero para el texto ruby).

Quiero obtener la salida que lo sustituye en, por ejemplo, una imagen creada por latex.codecogs, por ejemplo

 desired_output = "an inline  equation, a display equation  \n and another inline  " 

Utilizando ruby. Lo bash:

 desired = text.gsub("(\\[)(.*?)(\\])", "") desired = desired.gsub("(\\()(.*?)(\\))", "<img src=\"http://latex.codecogs.com/png.latex?\2\\inline\") desired 

Pero esto no tiene éxito, devolviendo solo la entrada original. ¿Qué me perdí? ¿Cómo construyo esta consulta apropiadamente?

Tratar:

 desired = text.gsub(/\\\[\s*(.*?)\s*\\\]/, "") desired = desired.gsub(/\\\(\s*(.*?)\s*\\\)/, "") desired 

Los cambios importantes que tuvieron que suceder:

  • El primer parámetro para gsub debe ser una expresión regular (como mencionó Anthony)
  • Si el segundo parámetro es una cadena entre comillas dobles, entonces las referencias posteriores deben ser como \\2 (en lugar de solo \2 ) (ver el documento de referencia )
  • El primer parámetro no fue escapar de la \

Hubo un par de otras cosas menores de formato (espacios, etc.).

No estoy seguro si su expresión regular es correcta, pero en Ruby, Regexp están delimitados por // , intente esto:

 desired = text.gsub(/(\\[)(.*?)(\\])/, "") 

Estabas tratando de hacer una subestación de cadenas y, por supuesto, gsub no estaba encontrando una cadena que contenga (\\[)(.*?)(\\])