En Java, se puede tratar de hacer una expresión regular que coincida con la URL stackoverflow.com
usando Pattern.compile("stackoverflow.com")
. Pero esto sería incorrecto porque el .
tiene un significado especial en expresiones regulares. La forma más fácil de solucionar esto es escribiendo Pattern.compile(Pattern.quote("stackoverflow.com"))
que sale a: Pattern.compile("\\Qstackoverflow.com\\E")
que "quotes" the entire string.replicar la funcionalidad de "Pattern.quote" de Java en un JavaScript RegExp
Quiero hacer lo mismo en JavaScript, pero las expresiones regulares de JavaScript no asignan ningún significado a \Q
y \E
y no parece que haya un equivalente de JavaScript, por lo que no estoy seguro de cómo hacerlo al respecto. Mi primer pensamiento (ver mi respuesta a continuación) es simplemente poner una barra invertida antes de cualquier personaje que tenga un significado especial en una expresión regular de JavaScript, pero esto parece potencialmente propenso a errores y sospecho que alguien podría saber de una mejor manera.
Esto es para una extensión de Firefox, por lo que las soluciones específicas de Mozilla están bien.
Para cualquier persona que se encuentra con esto en el futuro, y es curioso, terminé la solución de una manera diferente. Quería una expresión regular que coincidiera con '" 'seguida de una cadena en particular, seguida de' "'. Terminé buscando algo como '/" [^ "] +"/'(cita, un montón de caracteres que no son de cita, luego otra cita) y luego revisando todas las coincidencias para encontrar la que coincidía con la cadena en particular Yo quería. – MatrixFrog