Replace для второго-третьего и тд. вхождения

Тема в разделе "Решение различных задач по парсингу", создана пользователем Xpite, 27 мар 2019.

Метки:
  1. Xpite

    Xpite Member Пользователи

    Регистрация:
    13 мар 2017
    Сообщения:
    103
    Здравствуйте! Есть задача произвольно разбить на абзацы большой сплошной текст из предложений. Для этого предполагаю, что нужно, например, 5 - 10-ю точку (выбирается рандомно) в тексте заменять на .{br} или .</p><p>
    Есть ли подобный функционал? Спасибо за ответ!
     
  2. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Думаю, регулярным выражением такое можно сделать. Попросил человека ответить в этой теме (сам традиционные регулярные выражения не изучал).
     
    Xpite нравится это.
  3. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.433
    Адрес:
    Latvia
    Чтото подобное несколько раз уже писали в теме по регуляркам.

    Регулярное выражение будет корректно работать для сплошного текста без тегов
    Код:
    re:[\s\t]+|тут_один_пробел
    re:(.{180,450})\. |<p>$1.</p>
     
    Root нравится это.
  4. Xpite

    Xpite Member Пользователи

    Регистрация:
    13 мар 2017
    Сообщения:
    103
    Спасибо большое, работает! Не понял как работает тут табуляция \t, но отлично работает)

    З.Ы. Может быть еще подскажете как "выпиливать" предложения (ограниченные точками) со стоп словами? ну что-то типа \.[^.]*?стопслово[^.]*?\. - у меня почему-то срабатывает не всегда.
     
  5. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.433
    Адрес:
    Latvia
    Код:
    re:[^\.]*стоп\-слово[^\.]*\. |тут_один_пробел
    
    В настройках программы надо указать чтоб регулярные выражения были независимы от РеГиСтРа букв.
     
  6. Xpite

    Xpite Member Пользователи

    Регистрация:
    13 мар 2017
    Сообщения:
    103
    удалено
     

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