Как исключить разделители внутри текстовых классификаторов с помощью Regex? - PullRequest
0 голосов
/ 20 января 2019

Я пытаюсь исключить разделители в текстовых квалификаторах. Для этого я пытаюсь использовать Regex. Тем не менее, я новичок в Regex и не могу полностью удовлетворить свои потребности. Я был бы очень признателен, если бы кто-нибудь мне помог.

В Alteryx я загружаю текстовый файл с разделителями как «без разделителей» и говорю, что у него нет текстовых квалификаторов. Таким образом, вход будет выглядеть примерно так:

  1. "AABB" | ccdd | Eeff | gghh
  2. "аа | бб" | ccdd | Eeff | gghh
  3. "аа | бб" | ccdd | "й | ФФ" | gghh
  4. "аа | бб" | "куб.см | дд" | "й | ФФ" | "GG | чч"
  5. "AABB" | "ccdd" | "Eeff" | "gghh"
  6. "AABB" | "ccdd" | "Eeff" | "GG | чч"
  7. ААББ | ccdd | Eeff | gghh
  8. "аа | бб" | ccdd | Eeff | "GG | чч"
  9. ААББ | куб.см | дд | Eeff | gghh
  10. ААББ | "куб.см || д" | Eeff | gghh
  11. ААББ | "с | с | д" | Eeff | gghh
  12. "аа || бб" | ccdd | Eeff | gghh
  13. "а | | б | б" | ccdd | Eeff | gghh
  14. "AABB" | ccdd | Eeff | "г | г | чч"
  15. "AABB" | ccdd | Eeff | "|| гг чч"

Я хочу исключить все разделители, которые находятся между квалификаторами текста.

Я пытался использовать Regex для замены разделителей в текстовых квалификаторах ничем.

До сих пор я пытался использовать следующий код Regex для своей цели:

(")(.*?[^"])\|+(.*?)(")

И я использовал следующее для моей замены: $ 1 $ 2 $ 3 $ 4

Однако это не исправит строки 11, 13, 14 и 15.

Я хочу получить следующие результаты:

  1. "AABB" | ccdd | Eeff | gghh
  2. "AABB" | ccdd | Eeff | gghh
  3. "AABB" | ccdd | "Eeff" | gghh
  4. "AABB" | "ccdd" | "Eeff" | "gghh"
  5. "AABB" | "ccdd" | "Eeff" | "gghh"
  6. "AABB" | "ccdd" | "Eeff" | "gghh"
  7. ААББ | ccdd | Eeff | gghh
  8. "AABB" | ccdd | Eeff | "gghh"
  9. ААББ | куб.см | дд | Eeff | gghh
  10. ААББ | "ccdd" | Eeff | gghh
  11. ААББ | "ccdd" | Eeff | gghh
  12. "AABB" | ccdd | Eeff | gghh
  13. "AABB" | ccdd | Eeff | gghh
  14. "AABB" | ccdd | Eeff | "gghh"
  15. "AABB" | ccdd | Eeff | "gghh"

Заранее спасибо за помощь!

С уважением, Robin

1 Ответ

0 голосов
/ 30 января 2019

Я не могу придумать правильный синтаксис в REGEX, если вы не добавляете каждый шаблон, который можно найти.

Однако более простым способом (возможно, не таким быстродействующим) будет использование параметра «Текст в столбцы» с выбором «Игнорировать разделители в кавычках». Если впоследствии вам понадобится снова собрать их в одной ячейке, вы можете транспонировать, а затем удалить разделители, а затем суммировать, чтобы объединить каждую группу RecordID.

...