У меня есть файл CSV, и я хочу преобразовать
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, maecenas porttitor congue massa
в
<text>
<name>Lorem ipsum dolor sit amet</name>
<element>consectetuer adipiscing elit</element>
<desc> maecenas porttitor congue massa</desc>
</text>
Я могу выполнить этот простой случай с помощьюВыражение поиска:
^([^,]*),([^,]*),([^,]*),
^
- искать начало строки ([^,]*),
- искать ноль или более символов, которые не запятая, за которой следует запятая, и сгруппируйте ее (сделайте это 3 раза)
И выражение замены:
<text>\n <name>$1</name>\n <element>$2</element>\n <desc>$3</desc>\n</test>\n
Это работает для простого случая.Однако иногда значение в CSV имеет встроенные запятые, и в этом случае значение заключено в кавычки.
Lorem ipsum dolor sit amet, "consectetuer, adipiscing elit", maecenas porttitor congue massa
Таким образом, второе значение (которое будет ) должно заканчиваться на:
<text>
<name>Lorem ipsum dolor sit amet</name>
<element>consectetuer, adipiscing elit</element>
<desc> maecenas porttitor congue massa</desc>
</text>
То есть должно иметь встроенную запятую.Мне не нужно сохранять кавычки.
А затем, чтобы сделать его немного более запутанным, строка может также содержать кавычки, которые экранируются кавычками (или, по крайней мере, так мне дают CSV,который был сгенерирован из листа Google и сохранен в формате CSV)
Lorem ipsum dolor sit amet, "and he said, ""no way!"", to my astonishment", maecenas porttitor congue massa
Я хочу получить:
<text>
<name>Lorem ipsum dolor sit amet</name>
<element>and he said, "no way!", to my astonishment</element>
<desc> maecenas porttitor congue massa</desc>
</text>
Так что должен иметь запятые и экранированные кавычки(с удаленным символом, который является второй кавычкой, удален).
Я заблудился при попытке создать регулярное выражение поиска.