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

Discussion in 'Решение различных задач по парсингу' started by kagorec, Mar 19, 2012.

  1. Xpite

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

    Joined:
    Mar 13, 2017
    Messages:
    103
    Подскажите пожалуйста, как удалить все предложения короче 15 символов любых?
     
  2. Djahat

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

    Joined:
    Jan 14, 2013
    Messages:
    543
    Город:
    Мордор
    !!не заметил что вопрос в теме про регулярки ) , но может кому и пригодится

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

    [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]

    Но надо смотреть пример задачи, чтобы оптимальное решение найти
     
    Last edited: Mar 28, 2019
    Xpite likes this.
  3. Xpite

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

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

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

    Joined:
    Jan 14, 2013
    Messages:
    543
    Город:
    Мордор
    можно наверное и регуляркой, но я бы такое решал передачей текста в цикл, разбитие на предложение по точке, и кажое разбитие проверял бы макросом, который выше я написал. но если кто то регулярку такую покажет, тоже было бы интересно ее глянуть.
     
    Xpite likes this.
  5. Kreol

    Kreol Модератор Staff Member Модератор

    Joined:
    Jan 6, 2013
    Messages:
    2,666
    ну если вы ее знаете то да). Но сомневаюсь что она будет обрабатывать все, + тут нужно создать особые условия. Поэтому вариант с счетчиком лучше, хотя там тоже нужно делать разбивку.
    Снимок.PNG
     
    kagorec, Xpite and Djahat like this.
  6. Xpite

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

    Joined:
    Mar 13, 2017
    Messages:
    103
    У меня основная проблема что текст и так собирается в цикле. Т.е. он становится полотном в конце сборы циклов. Дальше его нужно привести в божеский вид, один из этапов которого как раз таки выпиливание коротких предложений без смысловой нагрузки...
     
    Djahat likes this.
  7. Djahat

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

    Joined:
    Jan 14, 2013
    Messages:
    543
    Город:
    Мордор
    Если в цикле собирается, то наверное в том же цикле и отфильтруйте макросом подсчета.

    Это уже надо видеть проект, у Вас есть два варианта, как минимум, как решать.
     
    Last edited by a moderator: Mar 28, 2019
    Xpite likes this.
  8. Xpite

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

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

    З.Ы. Добавлено: А нет, помогает, что-то я уже туплю совсем!
     
    Last edited: Mar 28, 2019
  9. kagorec

    kagorec Администратор Staff Member Администратор

    Joined:
    Jan 3, 2011
    Messages:
    4,442
    Location:
    Latvia
    Сработает чисто на русском тексте без циферок.
    6 строка в регулярке надо бы добавить цифры и английский алфавит ;)
     
    Kreol likes this.
  10. Stan

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

    Joined:
    Jun 15, 2011
    Messages:
    501
    не работает такая штука в поиск замене, вроде раньше срабатывала
    сейчас выводит так в поле результат [REGDOWN]F[/REGDOWN]asdf

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

    kagorec Администратор Staff Member Администратор

    Joined:
    Jan 3, 2011
    Messages:
    4,442
    Location:
    Latvia
    Макросы предназначенные для шаблона вывода, там и срабатывают в порядке назначения.
    В границе поиск-замена заранее подготавливает замену к срабатыванию в шаблоне вывода.

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

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

    Joined:
    Jun 17, 2014
    Messages:
    263
    Здравствуйте
    подскажите пожалуйста регулярку, которая удалит все до первой англ буквы или цифры
     
  13. kagorec

    kagorec Администратор Staff Member Администратор

    Joined:
    Jan 3, 2011
    Messages:
    4,442
    Location:
    Latvia
    Code:
    re:^[^a-zA-Z]+|
    [​IMG]
     
    dimochkaorg and Dron25 like this.
  14. 4upik

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

    Joined:
    Nov 11, 2015
    Messages:
    23
    Не могу сделать чтобы шла :
    Длина(см) - 115 <br>
    Ширина (см) - 40 <br>

    Пытался так

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

    Прошу помочь
     

    Attached Files:

  15. Root

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

    Joined:
    Mar 10, 2010
    Messages:
    14,818
    Город:
    Барнаул
    <br>|тут пробел
    {get}|{get}<br>[LINEMODE]
     
  16. 4upik

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

    Joined:
    Nov 11, 2015
    Messages:
    23
    Спасибо, только получилось так
    115,5 Длина(см)
    а хотелось бы
    Длина(см) - 115,5
     

    Attached Files:

  17. kagorec

    kagorec Администратор Staff Member Администратор

    Joined:
    Jan 3, 2011
    Messages:
    4,442
    Location:
    Latvia
    Очередной раз напоминаю: Регулярные выражения очень чувствительны к символам и их регистрам, поэтому предоставляйте часть кода.
     
    Root likes this.
  18. 4upik

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

    Joined:
    Nov 11, 2015
    Messages:
    23
    Code:
    <br>
    115,5 Длина(см)
    <br>
    X
    <br>
    40 Ширина(см)
    <br>
    X
    <br>
    53 Высота(см)
    <br>
    63,7 Вес(кг)
    <br>
     
  19. Root

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

    Joined:
    Mar 10, 2010
    Messages:
    14,818
    Город:
    Барнаул
    Code:
    <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 and xLime like this.
  20. kagorec

    kagorec Администратор Staff Member Администратор

    Joined:
    Jan 3, 2011
    Messages:
    4,442
    Location:
    Latvia
    Еще вариант;)
    Code:
    re:[\s\t]+|тут пробел
    re:([\d\,\.]+) ([^\d<>]+)|$2- $1{br}
    re:[<br> X]{3,}|
    [CLEARSPACES]
     
    xLime and Root like this.

Share This Page