Как обрезать текст до n-го пробела.

Тема в разделе "Решение различных задач по парсингу", создана пользователем aeroseo, 4 окт 2014.

  1. aeroseo

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

    Регистрация:
    4 окт 2014
    Сообщения:
    1
    Привет, ребяты! Подскажите по ситуации плз.

    Имеем: текст, заключенный в теги <title>
    Текст: [Настенная сплит-система Mitsubishi Heavy PLA-RP14 / PUHZ-ZRP14]
    Задача: выделить из текста значение "PLA-RP14 / PUHZ-ZRP14"
    Условие: все слова в тексте - не являются константами. Ровно как, и варьируется наличие/отсутствие пробела вокруг "/".
    Ход мыслей: предварительно применив макрос FIRST_REPLACE, решить вопрос варьирующегося пробела вокруг "/" . Далее, используя инверсию, применить условие "оставить всё до 1го пробела, начиная с конца".
    Вопрос: а условие то такое существует? Применительно к пробелам.
     
  2. Root

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

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

    Вот правило поиск-замены для взятия текста от конца до первого пробела:
    Где ПРОБЕЛ нужно заменить на символ пробела (он просто тут не выводится в начале цитаты).

    Надеюсь, наш ответ вам помог. Если у вас возникнут еще вопросы - пожалуйста, обращайтесь...

    С уважением к вам, Сергей.
     
    AleXL нравится это.
  3. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.432
    Адрес:
    Latvia
    Регулярным выражением примерно так будет
    Код:
    re:([\s\t]+)([^\s\t]{2,70})$|$2
     
  4. Zuev85

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

    Регистрация:
    21 мар 2018
    Сообщения:
    11
    Город:
    Dnipro
    Подскажите, пожалуйста. Необходимо обрезать текст.
    Пример: [IF1][CHARCOUNT]<CD_GRAN_4!>[/CHARCOUNT]=>150[THEN]<SHORT len="100" end=".|!|?"//><CD_GRAN_4!></SHORT>[ELSE][/IF1]
    Но! Макрос ищет знак ".|!|?" и получается в тексте больше символов. Нужно 250, а получается 257. До этого "знак" стоит, там около 50 символов.
    Как сделать, чтобы макрос обрезал до необходимого количества символов (получить не 257, а 50)? Получается подсчет идет в большую сторону, а надо в меньшую.
    Спасибо.
     
    Последнее редактирование: 27 янв 2019
  5. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Вы бы показали текст который так обрезает.
    Возможно было бы легче сориентировать
     
  6. Zuev85

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

    Регистрация:
    21 мар 2018
    Сообщения:
    11
    Город:
    Dnipro
    "Как ответить на вопрос ребенка, откуда берутся дети? Где найти слова, чтобы доходчиво

    и просто рассказать сыну или дочери о физиологических процессах, протекающих в организме в период полового созревания, и воспитать здоровое отношение к собственному телу?"

    Пожалуйста.
     
  7. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    <SHORT len="100" end=".|!|?"//>
    len="100" говорит что минимальная длина должна быть 100
    и только после нее начинает смотреть символы которые указаны в end=".|!|?"
    Так что как бы все правильно.
    Если нужно примерно 250,
    1) то либо надо просто написать <SHORT len="250" и end не ставить
    2) поставить например 240 и в end добавить пробел
     
  8. Zuev85

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

    Регистрация:
    21 мар 2018
    Сообщения:
    11
    Город:
    Dnipro
    А нужно чтобы обрезало на конце предложения, а не по середине.
     
  9. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Ну так у вас конец предложения чем обозначается?
    Знаком . или ! или ?
    от того места которое указано в len
     
  10. Zuev85

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

    Регистрация:
    21 мар 2018
    Сообщения:
    11
    Город:
    Dnipro
    Так мне получается, от сайта к сайту необходимо редактировать, количество символов. ...(
     

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