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

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

  1. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    пробуйте
    Код:
    _Sold|_
    re:^(.*44_.*)$|ʘ$1ʘ
    re:^[^ʘ](.*)$|
    ʘ|
     
  2. Amarous

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

    Регистрация:
    19 сен 2012
    Сообщения:
    33
    ну вот:
     

    Вложения:

  3. nikolas1612

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

    Регистрация:
    27 ноя 2011
    Сообщения:
    439
    Код:
    re:(?m)^[^\r\n]*_Sold[^\r\n]*$|
    re:[\r\n]+|{br}
     
  4. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Тогда не морочьте голову и покажите с какой страницы вам нужно это сделать. Я вам написал как сделать, вы просто не хотите.
    Обращаясь за помощью поставьте себя на наше место, и если вам будет полностью ясна задача, тогда задавайте вопрос.
    Всегда нужны исходные данные.
     
  5. Greedy

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

    Регистрация:
    30 сен 2014
    Сообщения:
    7
    Всем привет.
    Подскажите, почему не работают утверждения вперед и назад смотрящие?
    Например: (\d+\s(?=подписчик))
    Выдает: TRegExpr(comp): Urecognized Modifier (pos 18)
     
  6. Root

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

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

    Ругается на позицию 18, в вашем выражении это буква "к" из слова "подписчик". Но, думаю, позиция там считается от 0, а не от 1. В этом случае, 18 символ будет скобка ")", ее и не воспринимает данный модуль
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    Который и используется в программе в качестве библиотеки регулярных выражений (сами понимаете, что свою библиотеку регулярок можно писать пару лет и еще столько же тестировать, поэтому решил взять готовый модуль "регулярок").

    Попробуйте изучить материалы этой библиотеки, ссылку на хелп которой я вам дал. К сожалению, я вам не могу помочь в вопросе с регулярками, так как с ними не работаю, работаю со своими функциями, заменяющими регулярные выражения. Надеюсь, что вам подскажет кто-нибудь из форумчан.

    С уважением к вам, Сергей.
     
  7. Greedy

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

    Регистрация:
    30 сен 2014
    Сообщения:
    7
    Печально, самого интересного не хватает.
    Может тогда кто-нибудь подскажет как распарсить результат первой регулярки другой регуляркой?
    Делаю вот так:
    PHP:
    [VAR][SET:vari1][[[0|((\d+)\s(подписчик))||[NIL]{{{[REGEXPR][WITHBOUNDARIES]}}}]]][/SET][/VAR]
    [[[
    0|(\d+)||[NIL]{{{[REGEXPR][WITHBOUNDARIES][CONTENT][VAR:vari1][/CONTENT]}}}]]]
    Переменная vari1=188 подписчиков;
    Но результат второй регулярки выдает значение 1 вместо 188. Да и без 1й регулярки не работает, если просто присвоить это же значение переменной, вторая регулярка выдает 1.
     
  8. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Сдается мне, что вместо [VAR] (в данном случае) нужно воспользоваться [VARF]:
    Синтаксис тот же самый, только F на конце открывающего и закрывающего оператора. Этот макрос ([VARF]) выполняется практически перед всеми остальными макросами шаблона вывода, может быть это вам помогЕт...

    PS: Изучайте лог выполнения функций и макросов (там же и отображен их порядок выполнения) в окне предпросмотра результатов парсинга контента).

    С уважением к вам, Сергей.
     
  9. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Так, простите, я понял, что требуется! Предыдущий мой пост не читайте... =)

    В качестве контента для динамической границы парсинга можно использовать только одну из обычных (16-20):
     
  10. Sekotkin

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

    Регистрация:
    19 янв 2015
    Сообщения:
    1
    Может кто знает, подскажите пожалуйста, нужно, чтоб по регулярке находил предложения, заканчивающиеся на троеточие, как это сделать? Все экранирования и тд перепробовал, не видит.
     
  11. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Здравствуйте.
    Код:
    ([А-Я][а-я0-9\s\t\r\n]+\.\.\.)
     
  12. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    Найдет все предложения оканчивающиеся троеточием если русский или английский текст.
    В поиск-замена
    Код:
    re:([\.,\?!]*)([\s\t\r\n]*)([А-ЯA-Z]{1,25})([\W\w]{5,300})\.\.\.|<predlozenie>$3$4...</predlozenie>
     
    Последнее редактирование: 20 янв 2015
  13. Min-Z-Drav

    Min-Z-Drav New Member Пользователи

    Регистрация:
    14 янв 2015
    Сообщения:
    32
    Подскажите, как вырезать всё, что не входит в (a-zA-Zа-яА-ЯёЁ ) и
    вырезать всё что меньше 4 символов, а после этого поставить запятую после каждого слова, кроме последнего
     
  14. Min-Z-Drav

    Min-Z-Drav New Member Пользователи

    Регистрация:
    14 янв 2015
    Сообщения:
    32
    Подскажите пожалуйста есть строчка
    Арбуз & Дыня
    как сделать чтобы остался один символ то есть "&"
     
  15. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте:
    Код:
    {skip} |
     {skip}|
    Ссылки недоступны для гостей
     
  16. Min-Z-Drav

    Min-Z-Drav New Member Пользователи

    Регистрация:
    14 янв 2015
    Сообщения:
    32
    Спасибо работает, но есть загвоздка, а если
    Вкусное яблоко & Розовый цвет

    а иногда вообще просто текст

    Вкусное яблоко

    нужно просто чтобы просто символ оставил и все
     
  17. Root

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

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

    С решением такой задачи вам помочь сейчас не могу.
     
  18. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Логика данной операции теряется в догадках, зачем такое надо, но все же
    примените
    Код:
    [REPLACE(re:[^&]|)]<CD_GRAN_1!>[/REPLACE]
    удалит все символы кроме &
    С другой стороны можно использовать
    Код:
    [CHECKENTRY2(&)]<CD_GRAN_1!>[THENTEXT]&[/CHECKENTRY2]
     
  19. Min-Z-Drav

    Min-Z-Drav New Member Пользователи

    Регистрация:
    14 янв 2015
    Сообщения:
    32
    есть шаблон например
    боец "Кличко"
    а иногда попадается "Кличко & Тайсон"
    и слово боец нужно заменить на бойцы
    чтобы в конечном результате получилось

    бойцы Кличко & Тайсон

    и поэтому я хочу сделать чтобы если есть символ & - то писало Бойцы а если нечего нету то просто боец
     
  20. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    Пробуйте так, если есть совпадение "слова & слова" добавит перед ними "бойцы ", если один боец то выведет "боец .."
    PHP:
    [REPLACE(re:([^&]+)&([^&]+)|бойцы $& $2{break}re:^([^&]+)$|боец $1)]<CD_GRAN_1!>[/REPLACE]
     
    Последнее редактирование: 13 фев 2015

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