Hice esta pregunta antes y se cerró porque era un duplicado, lo cual acepto y realmente encontré la respuesta en la pregunta Java: splitting a comma-separated string but ignoring commas in quotes, así que gracias a quien publicó eso.Dividir una cadena en comas que no figuran entre comillas dobles con un giro
Pero desde entonces me he encontrado con otro problema. Aparentemente, lo que tengo que hacer es usar "," como mi delimitador cuando hay cero o un número par de comillas dobles, pero también ignorar cualquier "," entre corchetes.
Así lo siguiente:
"Thanks,", "in advance,", "for("the", "help")"
¿Sería tokenize como:
- Gracias,
- de antemano,
- para ("el", "ayuda")
No estoy seguro de si hay alguna forma de modificar la expresión regular actual I Estoy usando para permitir esto, pero cualquier orientación sería apreciada.
line.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)");
¿Cuál es el resultado deseado? – DOK
Debería utilizar un analizador CSV real para manejar ese lío. No ** cada ** problema de análisis se maneja mejor con expresiones regulares. –
@Joachim, ¿Cuántos analizadores de CSV conoces que pueden manejar presupuestos, entre corchetes, dentro de comillas de la manera que él quiere? –