En expresiones regulares, ¿cómo podemos hacer coincidir el carácter "." ¿sí mismo? [duplicar]

Posible duplicado:
expresión regular para DOT

Digamos que tengo una cadena:

String domain =  "www.example.com";

Para extraer la palabra "ejemplo" estoy usando la función de división en Java

String[] keys = domain.split(".");
String result = keys[1];

Claramente esto está mal porque el "." es una expresión regular incorrecta ya que coincide con cualquier carácter.

¿Cuál es la secuencia de escape que coincide específicamente con el carácter "."?

Aunque esta pregunta parece trivial, parece que no puedo encontrar ninguna referencia rápida o respuestas anteriores. Gracias.

preguntado el 12 de junio de 12 a las 08:06

posible duplicado de expresión regular para DOT. Además, similares y similares. -

6 Respuestas

Al escapar de la siguiente manera

\\.

Respondido el 12 de junio de 12 a las 08:06

¿Deberíamos decir que en expresiones regulares, el . se escapa como \.; pero como en Java \ es un carácter especial (para escapar, irónicamente), también debe escaparse, por lo tanto \\. - amor

Utiliza \\.. Necesitas escapar de él.

Respondido el 12 de junio de 12 a las 08:06

@JigarJoshi: Estaba en el proceso de editarlo. - RanRag

Solo vi single \ así que lo escribí, se ha actualizado - Jmj

Puede obtener la expresión regular para cualquier cadena literal usando Pattern.quote().

Pattern.quote(".") se evalúa como "\\".

En este caso, probablemente sería más claro usar \\.

Respondido el 12 de junio de 12 a las 09:06

Puedes escapar . prefijándolo con \\. Por lo tanto, utilice \\. La razón es que la cadena literal \\ es una sola barra invertida. En las expresiones regulares, la barra invertida también es un carácter de escape. La expresión regular \\ coincide con una sola barra invertida.

Respondido el 12 de junio de 12 a las 08:06

Puedes escapar del . personaje usando \\. o usando los paréntesis [.].

Por lo tanto, su código se convierte en:

String[] keys = domain.split("\\."); // or domain.split("[.]");
String result = keys[1];

Respondido el 12 de junio de 12 a las 09:06

O puede crear una clase que contenga el dot, sin escapar:

[.]

Respondido el 12 de junio de 12 a las 09:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.