Regexp - шпаргалка по регулярным выражениям

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

  1. Xpite

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

    Регистрация:
    13 мар 2017
    Сообщения:
    94
    Подскажите пожалуйста, как удалить все предложения короче 15 символов любых?
     
  2. Djahat

    Djahat Well-Known Member Пользователи

    Регистрация:
    14 янв 2013
    Сообщения:
    487
    Город:
    Мордор
    !!не заметил что вопрос в теме про регулярки ) , но может кому и пригодится

    Есть такой примерчик в хелпе

    [IF1][CHARCOUNT]<CD_GRAN_1!>[/CHARCOUNT]>=5[THEN]да[ELSE]нет[/IF1]

    Считаешь сколько символов CHARCOUNT
    Передаешь в IF результат подсчета CHARCOUNT
    И выводишь то что нужно по этому условию IF

    например:

    [IF1][CHARCOUNT]<CD_GRAN_1!>[/CHARCOUNT]>15[THEN]<CD_GRAN_1!>[ELSE][/IF1]

    Если перед этим текст надо разбить на предложение, то можно наверное засунуть каждое предложений в циклическую границу парсинга, и в шаблоне циклической границы проделать тоже самое, [IF1][CHARCOUNT][VALUE][/CHARCOUNT]>15[THEN]<CD_GRAN_1!>[ELSE][/IF1]

    Но надо смотреть пример задачи, чтобы оптимальное решение найти
     
    Последнее редактирование: 28 мар 2019
    Xpite нравится это.
  3. Xpite

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

    Регистрация:
    13 мар 2017
    Сообщения:
    94
    Пример задачи: большой сплошной текст из примерно 100 предложений. Какие-то из них слишком короткие и их нужно удалить, смысл не потеряется... Может быть проще регуляркой такое?
     
  4. Djahat

    Djahat Well-Known Member Пользователи

    Регистрация:
    14 янв 2013
    Сообщения:
    487
    Город:
    Мордор
    можно наверное и регуляркой, но я бы такое решал передачей текста в цикл, разбитие на предложение по точке, и кажое разбитие проверял бы макросом, который выше я написал. но если кто то регулярку такую покажет, тоже было бы интересно ее глянуть.
     
    Xpite нравится это.
  5. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.575
    ну если вы ее знаете то да). Но сомневаюсь что она будет обрабатывать все, + тут нужно создать особые условия. Поэтому вариант с счетчиком лучше, хотя там тоже нужно делать разбивку.
    Снимок.PNG
     
    kagorec, Xpite и Djahat нравится это.
  6. Xpite

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

    Регистрация:
    13 мар 2017
    Сообщения:
    94
    У меня основная проблема что текст и так собирается в цикле. Т.е. он становится полотном в конце сборы циклов. Дальше его нужно привести в божеский вид, один из этапов которого как раз таки выпиливание коротких предложений без смысловой нагрузки...
     
    Djahat нравится это.
  7. Djahat

    Djahat Well-Known Member Пользователи

    Регистрация:
    14 янв 2013
    Сообщения:
    487
    Город:
    Мордор
    Если в цикле собирается, то наверное в том же цикле и отфильтруйте макросом подсчета.

    Это уже надо видеть проект, у Вас есть два варианта, как минимум, как решать.
     
    Последнее редактирование модератором: 28 мар 2019
    Xpite нравится это.
  8. Xpite

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

    Регистрация:
    13 мар 2017
    Сообщения:
    94
    Как бы мне разобрать спарсенные множественные данные по строчкам, чтобы можно было применять регулярки для начала и конца строки?
    Простая замена в нужных местах на {br} не помогает...

    З.Ы. Добавлено: А нет, помогает, что-то я уже туплю совсем!
     
    Последнее редактирование: 28 мар 2019
  9. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    3.697
    Город:
    Riga
    Сработает чисто на русском тексте без циферок.
    6 строка в регулярке надо бы добавить цифры и английский алфавит ;)
     
    Kreol нравится это.
  10. Stan

    Stan Active Member Пользователи

    Регистрация:
    15 июн 2011
    Сообщения:
    383
    не работает такая штука в поиск замене, вроде раньше срабатывала
    сейчас выводит так в поле результат [REGDOWN]F[/REGDOWN]asdf

    скорей всего в поиск замене это и не работало , нужно опустить регистр первой буквы в поиск замене.
     
  11. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    3.697
    Город:
    Riga
    Макросы предназначенные для шаблона вывода, там и срабатывают в порядке назначения.
    В границе поиск-замена заранее подготавливает замену к срабатыванию в шаблоне вывода.

    п.с. вроде раньше небо было голубее и трава зеленее))
     
    xLime нравится это.
  12. Dron25

    Dron25 Well-Known Member Пользователи

    Регистрация:
    17 июн 2014
    Сообщения:
    205
    Здравствуйте
    подскажите пожалуйста регулярку, которая удалит все до первой англ буквы или цифры
     
  13. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    3.697
    Город:
    Riga
    Код:
    re:^[^a-zA-Z]+|
    [​IMG]
     
    Dron25 нравится это.
  14. 4upik

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

    Регистрация:
    11 ноя 2015
    Сообщения:
    16
    Не могу сделать чтобы шла :
    Длина(см) - 115 <br>
    Ширина (см) - 40 <br>

    Пытался так

    Код:
    re:(\d*)(<br>)(.*)|$3- $2 $1
    срабатывает только для первой строки и не так как хотелось бы.

    Прошу помочь
     

    Вложения:

  15. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    11.765
    <br>|тут пробел
    {get}|{get}<br>[LINEMODE]
     
  16. 4upik

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

    Регистрация:
    11 ноя 2015
    Сообщения:
    16
    Спасибо, только получилось так
    115,5 Длина(см)
    а хотелось бы
    Длина(см) - 115,5
     

    Вложения:

  17. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    3.697
    Город:
    Riga
    Очередной раз напоминаю: Регулярные выражения очень чувствительны к символам и их регистрам, поэтому предоставляйте часть кода.
     
    Root нравится это.
  18. 4upik

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

    Регистрация:
    11 ноя 2015
    Сообщения:
    16
    Код:
    <br>
    115,5 Длина(см)
    <br>
    X
    <br>
    40 Ширина(см)
    <br>
    X
    <br>
    53 Высота(см)
    <br>
    63,7 Вес(кг)
    <br>
     
  19. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    11.765
    Код:
    <br>|
    [LINEMODE]{textstart}X{textend}|
    [DELEMPTYSTRINGS]
    [LINEMODE]{get}|[ELEMENT]{get}[/ELEMENT]
    [LINEMODE][ELEMENT]{skip} {skip}[/ELEMENT]|{skip(2)} - {skip(1)}
    2019-05-14_12-33-45.png
     
    kagorec и xLime нравится это.
  20. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    3.697
    Город:
    Riga
    Еще вариант;)
    Код:
    re:[\s\t]+|тут пробел
    re:([\d\,\.]+) ([^\d<>]+)|$2- $1{br}
    re:[<br> X]{3,}|
    [CLEARSPACES]
     
    xLime и Root нравится это.

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