Cómo escribir una expresión regular para que coincida con esta \"
(una barra invertida luego una comilla)? Supongamos que tengo una cadena como esta:Java: expresión regular para hacer coincidir una barra invertida seguida de una comilla
<a href=\"google.com\"> click to search </a>
tengo que sustituir todo el \"
con un "
, por lo que el resultado será similar:
<a href="google.com"> click to search </a>
Ésta no funciona: str.replaceAll("\\\"", "\"")
porque solo coincide con la cita. No estoy seguro de cómo moverse con la barra invertida. Podría haber eliminado la barra invertida primero, pero hay otras barras invertidas en mi cadena.
Necesita más barras diagonales inversas en el primer parámetro. Puede parecer un poco contra-intuitivo, pero si lo piensas, tendrá sentido. –
Para escribir un literal \ en la expresión regular, use '" \\\\ "' La primera "duplicación" es para escapar de la barra en la cadena * literal * (por lo que la cadena resultante * valor * es \\\). Luego, la primera barra escapa del segundo * en * el motor de expresiones regulares, por lo que coincidirá con un \ carácter. Diversión, ¿eh? –
Parece que intenta decodificar una cadena que puede contener secuencias de escape, donde la barra invertida es el carácter de escape. ¿Cuál debería ser la salida de su decodificador cuando la entrada contiene una barra invertida-barra invertida? Asegúrese de escribir una prueba para ese caso. – dnault