Скажут, у меня есть файл строки, какRegex в соответствии недопустимый CSV строки с неэкранированными кавычками
11,"abc","def"
12,"ab "c"","def" // invalid
13,"ab,"c"","def" // invalid
14,""a" b,c","def" // invalid
15,""a", "b"c","def" // invalid
Как вы можете увидеть некоторые из двойных кавычек являются неэкранированными. Я хочу отфильтровать недопустимые строки, прежде чем попытаюсь их проанализировать.
Я собираюсь сделать что-то вроде \,\".+\"\,
, чтобы найти токен, а затем проверить, что он не содержит ","
внутри. Но я не могу понять, как заставить его работать.
Я искал в SO, но не нашел ответа, который работает на меня.
спасибо.
На всякий случай - я бы предпочел решение, совместимое с Java. – cyrillk
Вы могли бы добавить ожидаемый результат? например, для: '13," ab, "c" "," def "' –
Это, вероятно, не проблема, которую вы должны решать только с помощью регулярных выражений; будет намного проще написать парсер, обрабатывающий столбец за раз. Предполагая, что вам не нужно обрабатывать произвольно искаженный ввод (т. Е. Что ваши недопустимые входы имеют некоторый шаблон), это не должно быть слишком сложно. – beerbajay