Foros del Web » Programación para mayores de 30 ;) » Java »

Esto es insolucionable? problema al escapar Strings en expresión regular

Estas en el tema de Esto es insolucionable? problema al escapar Strings en expresión regular en el foro de Java en Foros del Web. Hola a todos! me acaba de pasar una cosa muy bizarra, la cual tiene todo el sentido, pero lo veo insolucionable! mi problema: Quiero usar ...
  #1 (permalink)  
Antiguo 19/11/2015, 03:39
 
Fecha de Ingreso: noviembre-2015
Mensajes: 34
Antigüedad: 8 años, 5 meses
Puntos: 4
Exclamación Esto es insolucionable? problema al escapar Strings en expresión regular

Hola a todos! me acaba de pasar una cosa muy bizarra, la cual tiene todo el sentido, pero lo veo insolucionable! mi problema:

Quiero usar un Split() con un string el cual tiene un delimitador para separar lo que quiero ir obteniendo, en este caso me pasan archivos csv los cuales unos tienen unos delimitadores y otros pues otros, entonces yo tengo que pasar el delimitador como parámetro y mi problema llega a la hora de escapar ese parámetro para que no haya errores, por ejemplo, si el delimitador es "|" yo debo escaparlo así "\|" ya que el Split lo que espera es una expresión regular y si le pongo solo "|" separará cada letra, pero claro, el delimitador llega como parámetro, entonces si yo hago lo que normalmente se hace:

Código Java:
Ver original
  1. String[] partes = Split("\"+separador);

No puedo hacer eso, porque lo que hace es escaparme la " y obviamente pues error porque falta una comilla y ahí es donde mi cabeza explota, porque no puedo añadir el escape de ninguna manera al string que me llega por ese error y escribir la barra de escape donde se le da valor al separador no es viable.


Alguna idea gente? mi mundo de Java se me ha venido abajo con esto , no se me ocurre nada D: hahaha

Gracias de antemano!
  #2 (permalink)  
Antiguo 19/11/2015, 08:51
 
Fecha de Ingreso: noviembre-2015
Mensajes: 34
Antigüedad: 8 años, 5 meses
Puntos: 4
Respuesta: Esto es insolucionable? problema al escapar Strings en expresión regular

Vale, gente, me respondo a mi mismo!

encontré la información aquí: http://stackoverflow.com/questions/6257316/illegal-escape-character

Básicamente para que una expresión regular te escape un carácter hay que usar \ pero claro, java también te lo escapa, así que hay que hacer que si te lo escape la expresión regular pero no el propio java, eso se consigue con una paranoia: escapar la barra para escapar... Whut?

Visualmente esto:

Código Java:
Ver original
  1. String[] arrayString = Split("\\"+separador);//escapas la propia \ te la tomará como string y después la expresión regular usará ese string para escaparte el separador... Double combo BOOOOM XD
  2. ;

Saludos! a alguien le servirá en un futuro XD

Última edición por Knaak53; 19/11/2015 a las 08:51 Razón: Dat ortografía

Etiquetas: escapar, regular, string, strings, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:02.