Notepad ++ регулярное выражение заменить - заменить все запятые на \, в кавычках - PullRequest
2 голосов
/ 18 июня 2011

Я пытаюсь импортировать CSV-файл в MySQL, и мне нужно преобразовать его в правильный формат перед импортом.

Если в столбце есть запятая, CSV заключает ее в двойные кавычки, вот пример строки без запятой и строки с запятой:

1,Superman
2,"Batman,Flash"

Что мне нужно сделать, это преобразовать все столбцы, у которых есть запятые, чтобы экранировать запятую и удалить кавычки ... например, "Batman,Flash" в Batman\,Flash

Вот что у меня есть

Find: "(.*),(.*)"
Replace: \1\\,\2

Однако есть два случая, в которых это не работает:

  • Он заменит только одну запятую, если в кавычках есть несколько запятых. Таким образом, что-то вроде "Batman,Flash,Robin" будет преобразовано в Batman,Flash\,Robin
  • Это не работает, если в первом столбце также есть запятая. Например, в строке, такой как "1,2,3","Batman,Robin"

Как я могу изменить регулярные выражения, чтобы учесть два случая, которые еще не работают?

1 Ответ

1 голос
/ 18 июня 2011

Извините, но регулярное выражение не инструмент для этого. Вы должны разобрать это.

Почему?

Хотите конвертировать?

"test\, w00t!"

Или как насчет этого?

"test\\\\\, w00t!"

Черт, даже это?

"tes\\","\"ing\,\\,"
...