Парсинг адреса в разные ячейки

Тема в разделе "Функции поиск-замены и регулярные выражения", создана пользователем rotvellerr, 5 окт 2017.

  1. rotvellerr

    rotvellerr New Member Пользователи

    Регистрация:
    27 окт 2015
    Сообщения:
    58
    Всем привет!
    Имеется кусок кода, который выводит адрес
    Код:
     <address><i class="zmdi zmdi-pin"></i> Украина, Тернопольская область, Чортков, улица Церковная</address>
    Вопрос:
    Как спасрсить адрес в разные ячейки CSV (формат:Страна[CSVCS]Область[CSVCS]Город[CSVCS]Улица и №)?
     
  2. xLime

    xLime Well-Known Member Супер Модератор Модератор

    Регистрация:
    4 сен 2017
    Сообщения:
    401
    На границе галочка htm to txt
    Применить поиск-замена к границе 're:[\s\t]+|'
    В шаблон вывода вставляем:
    Код:
    [REPLACE({get},|{get})]<CD_GRAN_1!>[/REPLACE][CSVCS]
    [REPLACE({skip},{get},|{get})]<CD_GRAN_1!>[/REPLACE][CSVCS]
    [REPLACE({skip},{skip},{get},|{get})]<CD_GRAN_1!>[/REPLACE][CSVCS]
    [REPLACE({skip},{skip},{skip},|{get})]<CD_GRAN_1!>[/REPLACE][CSVCS]
    Если кто-то может сделать это регулярным выражением, прошу ответить в теме. У меня не получилось, хотелось бы разобраться.
     
    Последнее редактирование: 6 окт 2017
    Root нравится это.
  3. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    Берем границей весь блок адреса и потом регулярками ловить соответствия и полученое обрамлять метками. Заключительным этапом в шаблоне вывода выдергивать из границы гетом, с помощью макроса замены.
    Например ловим значение улицы:
    Код:
    re:улица ([^<>\,]+)|<ulica>1</ulica>
     
    xLime нравится это.
  4. rotvellerr

    rotvellerr New Member Пользователи

    Регистрация:
    27 окт 2015
    Сообщения:
    58
    Что-то у меня ничего не получается.
    Приложил чистый проект (собраны ссылки и обозначены границы)
    Вот именно граница Адреса1 и есть сложной для меня...
     

    Вложения:

  5. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Поиск-заменой (макрос [REPLACE]) заменить запятые на [CSVCS]
     
  6. rotvellerr

    rotvellerr New Member Пользователи

    Регистрация:
    27 окт 2015
    Сообщения:
    58
    Делал такое, но в таком случае если после названия улицы идет номер дома ( а он также отделен запятой), то он переносится в следующую ячейку.
     
  7. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Разместите адрес в конце таблицы.
     
  8. rotvellerr

    rotvellerr New Member Пользователи

    Регистрация:
    27 окт 2015
    Сообщения:
    58
    В конце таблицы размещены категории, которые точно также выводятся и не имеют стабильного количества...:)
     
  9. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Для категорий задайте повторяющуюся границу парсинга и сделайте фиксированное количество ячеек для категорий.

    2017-10-10_11-05-59.png
     
  10. rotvellerr

    rotvellerr New Member Пользователи

    Регистрация:
    27 окт 2015
    Сообщения:
    58
    Спасибо за дельный совет по поводу категорий. Так и сделал. Категории пустил вначале, а адрес в конец...
     

Поделиться этой страницей