Java regex para dividir por coma pero ignorar la coma dentro de los comentarios
Frecuentes
Visto 564 equipos
3
Necesito expresiones regulares para dividir la cadena por Coma (,) pero ignore la coma en la parte comentada. Intenté mucho después de cambiar su expresión regular. No fue exitoso, por ejemplo.
Command=RTRV-EQPT, Completion Code= DENY, Error Code= II:AC, Problem Description= /* Input Inva,lid *******ACcess =iden:tifier */, Comment=null,
2 Respuestas
1
para su caso particular, ¿por qué no eliminar primero el comentario y luego dividirlo? Puede simplificar su problema.
txt.replace("/*reg to match the comment here */", " ").split(',');
Respondido 31 Jul 12, 11:07
expresión regular para que coincida con el comentario //.*|(\"(?:\\\\[^\"]|\\\\\"|.)*?\")|(?s)/\\*.*?\\*/
- Nandkumar Tekale
Más uno por probar tal RE, pero ¿es éste exacto? ¿Cuál es el comentario "gramática"? ¿Cómo se codifican los caracteres de los comentarios (¿se escapan? ¿Se citan?) en un valor real? Considere {{ABC="/* este es un valor /, DEF=XYZ}}. La "gramática" de los comentarios parece ser simplemente "cualquier cosa encerrada por /...*/", con la suposición adicional de que no aparecen caracteres de comentario en las cadenas de valores entre comillas, por lo que el guión doble y el manejo especial de las comillas dobles parecen un poco exagerados. El enfoque del analizador mencionado por otros suena bien. - mgaert
1
No reinventes la rueda: aquí hay un analizador fácil de usar
Respondido 31 Jul 12, 12:07
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas java or haz tu propia pregunta.
¿Cómo se puede diferenciar entre comentar/no comentar? Encerrada por
/
? - brimboriumLas afirmaciones de mirar hacia adelante / mirar hacia atrás probablemente harán el truco: Sebastian Hoffmann
Reemplace los comentarios con comillas dobles (es decir, haga un CSV adecuado) y use un analizador de CSV adecuado. - OrangeDog