Как исключить разделители внутри классификаторов текста с помощью Regex?
Я пытаюсь исключить разделители в текстовых квалификаторах. Для этого я пытаюсь использовать Regex. Тем не менее, я новичок в Regex и не могу полностью удовлетворить свои потребности. Я был бы очень признателен, если бы кто-нибудь смог мне помочь.
В Alteryx я загружаю текстовый файл с разделителями как "без разделителей" и говорю, что у него нет текстовых квалификаторов. Таким образом, вход будет выглядеть примерно так:
- "AABB" | ccdd | Eeff | gghh
- "Аа | бб" | ccdd | Eeff | gghh
- "Аа | бб" | ccdd | "й | ФФ" | gghh
- "Аа | бб" | "куб.см | дд" | "й | FF" | "| GG чч"
- "AABB" | "ccdd" | "Eeff" | "gghh"
- "AABB" | "ccdd" | "Eeff" | "гг | чч"
- ААББ | ccdd | Eeff | gghh
- "аа | бб" | ccdd | Eeff | "| GG чч"
- ААББ | куб.см | дд | Eeff | gghh
- ААББ | "куб.см || д" | Eeff | gghh
- ААББ | "с | с | д" | Eeff | gghh
- "Аа || бб" | ccdd | Eeff | gghh
- "А | | б | б" | ccdd | Eeff | gghh
- "AABB" | ccdd | Eeff | "г | г | чч"
- "AABB" | ccdd | Eeff | "|| гг чч"
Я хочу исключить все разделители, которые находятся между квалификаторами текста.
Я пытался использовать Regex, чтобы заменить разделители в текстовых квалификаторах ничем.
До сих пор я пробовал следующий код Regex для моей цели:
(")(.*?[^"])\|+(.*?)(")
И я использовал следующее для моей замены: $1$2$3$4
Однако это не исправит строки 11, 13, 14 и 15.
Я хочу получить следующие результаты:
- "AABB" | ccdd | Eeff | gghh
- "AABB" | ccdd | Eeff | gghh
- "AABB" | ccdd | "Eeff" | gghh
- "AABB" | "ccdd" | "Eeff" | "gghh"
- "AABB" | "ccdd" | "Eeff" | "gghh"
- "AABB" | "ccdd" | "Eeff" | "gghh"
- ААББ | ccdd | Eeff | gghh
- "AABB" | ccdd | Eeff | "gghh"
- ААББ | куб.см | дд | Eeff | gghh
- ААББ | "ccdd" | Eeff | gghh
- ААББ | "ccdd" | Eeff | gghh
- "AABB" | ccdd | Eeff | gghh
- "AABB" | ccdd | Eeff | gghh
- "AABB" | ccdd | Eeff | "gghh"
- "AABB" | ccdd | Eeff | "gghh"
Заранее спасибо за помощь!
С уважением, Робин
1 ответ
Я не могу придумать правильный синтаксис в REGEX, если вы не добавляете каждый шаблон, который можно найти.
Однако более простым способом (возможно, не таким быстродействующим) будет использование параметра "Текст в столбцы" с выбором "Игнорировать разделители в кавычках". Если вам понадобится снова собрать их вместе в одной ячейке, вы можете транспонировать, а затем удалить разделители, а затем суммировать, чтобы объединить каждую группу RecordID.