2009-09-16 11 views

Respuesta

-2
"hello|world".split("\\\\|"); --> {"hello", "world"} 

primer conjunto de "\\" sólo se produce el \ como delimitador. Por lo tanto, se necesitan 2 juegos para escapar de la tubería.

+3

solución correcta, la explicación equivocada. La expresión regular necesaria es \ | (dos caracteres) y si desea poner una barra inclinada invertida en la cadena en Java, debe usar una barra invertida doble para indicarle a Java que la barra invertida no se está utilizando para escapar del siguiente carácter. –

+1

Para eso son las secciones de código :-) – Joey

+1

¿Por qué no eliminas esta respuesta y aceptas la de Kevin? –

40

Escápelo con \\:

"hello|world".split("\\|"); 
+0

\\ también me ayudó a reemplazar | con String.repacelAll() –

1

tengo este problema mucho (que codifica una expresión regular en una de Java String), por lo que he marcado como favorito el regex tool at fileformat.info; Tiene una función ingeniosa en la que le mostrará la representación Java String de una expresión regular después de que la pruebe.

+0

¡Eso es genial! También podría simplemente jugar con ver las declaraciones en el entorno de depuración de eclipse. – TheOne

0

Como ya dijo Kevin, debe escapar.

Además, si está utilizando Eclipse o quiere tener un editor WYSIWYG para expresiones regulares en Java, visite myregexp.com desde donde obtiene como complemento de Eclipse o utiliza como applet IMO la mejor herramienta de expresiones regulares de Java que he visto.

Cuestiones relacionadas