la sustitución de cadena exacta en Java asumiendo que puede contener caracteres especiales de expresiones regulares

Dirj:

Tengo una entrada de cadena, así como Patrón de encordado y supongo que podrían contener toda clase de tales caracteres que tienen un significado especial para expresiones regulares, y me gustaría reemplazo exacto palabra que tenga lugar sin dar ninguna consideración especial a los caracteres especiales. Cualquier significado especial debe ser ignorada. Y no voy a saber en tiempo de compilación exactamente cómo muchos de estos caracteres especiales pueden estar presentes en la serie de entrada o el patrón de entrada.

Así que aquí es la declaración problema formal: -

Suponga que el input_string el objeto es la entrada de tipo String. Luego tenemos otro input_pattern cadena que es también un objeto de tipo String.

Ahora quiero para realizar lo siguiente: -

String result=input_string.replaceFirst(input_pattern,"replacewithsomethingdoesntmatter");

la sustitución debe tener lugar en 'exacta' de forma partido, sin tener en cuenta ningún significado especial de expresiones regulares de caracteres si están presentes en las cadenas. Cómo hacer que suceda?

Robby Cornelissen:

Se puede utilizar el Pattern.quote()método de escapar caracteres que tienen un significado especial en las expresiones regulares:

String pattern = "^(.*)$";
String quotedPattern = Pattern.quote(pattern);

System.out.println(quotedPattern);

Esto envolver el patrón en comillas marcadores ( \Qy \E), lo que indica que la secuencia envuelto necesita ser emparejado literalmente.

Alternativamente, se puede envolver el patrón de marcadores de cotización de forma manual:

String pattern = "^(.*)$";
String quotedPattern = "\\Q" + pattern + "\\E";

System.out.println(quotedPattern);

El primer enfoque es probablemente más seguro, ya que también hará que los alojamientos para las expresiones que ya contienen marcadores de cotización.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=333264&siteId=1
Recomendado
Clasificación