Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Регулярные выражения

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97

Открыть новую тему     Написать ответ в эту тему

leftMIND

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
   Регулярные выражения
Обучающий материал
  • Книги    
  • Шпаргалки: от AZJIO (AutoIt3, PCRE) от Dave Child
  • wikipedia.org - Регулярные выражения на wiki  
  • edlinsoft.blogspot.com - Регулярные выражения в .NET Framework  
  • php.ru - Синтаксис регулярных выражений  
  • php.net - Синтаксис регулярных выражений  
  • regexpstudio.com - Регулярные выражения для Delphi  
    Официальные источники:
  • docs.notepad-plus-plus.org - Официальный источник Notepad++ (англ. яз.)  
  • pcre.org - Официальный справочник движка PCRE (англ. яз.)  

  •    Тестирование регулярных выражений
    Программы
    Онлайн сервисы
  • RegexBuddy - крутая и платная  
  • RegExp - бесплатно, AZJIO, PCRE, AutoIt3  
  • Expresso  
  • The Regex Coach  
  • RegExstar, Github (AutoHotKey, PCRE)
  • Обзор программ от ManHunter    
  • regexr.com здесь в Community множество готовых регулярных выражений  
  • pagecolumn.com - для javascript  
  • pagecolumn.com - для php  
  • cuneytyilmaz.com - для javascript  
  • php-include.ru - на флеш-плеере  
  • regex101.com  
  • easyregexp.ru  
  • debuggex.com - показывает структурно  

  •    Схожие темы
  • javascript регулярные выражения
  • PHP: Регулярные выражения (RegExp, Regular, eregi, preg)
  • Игра - Регулярно выражайтесь!
     
    первое сообщение темы...
    Обсуждение шапки данной темы ведётся в этой теме
    Рекомендации по составлению вопросов в данной теме:

  • Всего записей: 33 | Зарегистр. 07-04-2002 | Отправлено: 23:55 15-10-2002 | Исправлено: AZJIO, 15:18 12-02-2021
    PryMan



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuS_2
    Вот чётр, а ведь пробовал ключ "\b". Вот только в примерах указано, что "\b" должен быть с двух сторон слова - \bmpg\b, а оказывается, что с двух сторон всей строки
    Большое спасибо!

    Всего записей: 157 | Зарегистр. 01-08-2018 | Отправлено: 19:00 17-11-2019 | Исправлено: PryMan, 19:08 17-11-2019
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    PryMan написал(а)
    Цитата:
     "\b" должен быть с двух сторон

    может быть и с одной. Это вам решать с двух ставить или с одной.

    ----------
    Раздачи и акции

    Всего записей: 7198 | Зарегистр. 20-03-2009 | Отправлено: 19:43 17-11-2019
    PryMan



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    regist123Да, спасибо, я уже понял логику.
    Просто не совсем правильно понял найденные в интернете примеры, пока YuS_2 не показал работающий вариант.

    Всего записей: 157 | Зарегистр. 01-08-2018 | Отправлено: 21:04 17-11-2019
    presentRU

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужна помощь. Сначала идёт "Слово1", потом произвольный текст с пробелами. Потом либо "р.", либо "Договорная". Нужно фильтровать первые три вышеописанных вхождения после "Слово1".
    Это я так с рекламой борюсь. Встраивают, собаки, в доску объявлений, наряду с обычными объявками и динамически меняют css. А я в регулярках ни бум-бум.
    Приведу пример задачи:
     
    VIP Объявления Телефон крутой 1000 р. Телевизор обыкновенный Договорная Кошка породистая 500 р.
     

    Всего записей: 822 | Зарегистр. 16-10-2006 | Отправлено: 13:24 03-12-2019 | Исправлено: presentRU, 13:30 03-12-2019
    sikemo

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    вы некорректно сформулировали задачу, кмк.
     
    если надо привязаться к р. и Договорная, запишите \sр\.|\s+?Договорная
    далее непонятно, как  длинно ваше слово, это в примере 2 слова или 3 Телефон крутой или  
     
     
    если 2 то  
     
     
    FIND
    ((>?\w+\s\w+)(?>\s?\d+\sр\.|\s+?Договорная))
    REPLACE

    Всего записей: 1329 | Зарегистр. 27-11-2008 | Отправлено: 20:35 03-12-2019
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    presentRU
    Слово1(.+(Договорная|р\.)){3}
    если совсем сначала, то можно и  
    ^Слово1(.+(Договорная|р\.)){3}

    Всего записей: 15589 | Зарегистр. 20-09-2014 | Отправлено: 05:40 04-12-2019 | Исправлено: Mavrikii, 05:41 04-12-2019
    presentRU

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sikemo, Mavrikii
    Спасибо за внимание, но пока у меня чёт не работает.
    Попробую подробнее донести инфу. Суть в том, что использую программу Website Watcher для просмотра обновлений на сайте. Синтаксис её регулярных выражений описан здесь.
     
    Вот этот злополучный сайт, на котором нужно игнорировать (задать в фильтрах через регулярку) объявы типа:
    таких
     
    Блокировщики рекламы для такой цели не подходят, т.к. скрывают рекламу, но Website Watcher всё равно определяет, что меняется содержимое.
     
    Насколько я понял, нужно привязаться к слову VIP и далее описать первые три объявки, которые меняются при каждом обновлении страницы.

    Всего записей: 822 | Зарегистр. 16-10-2006 | Отправлено: 13:33 04-12-2019 | Исправлено: presentRU, 13:41 04-12-2019
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    presentRU, думаю там надо к html тегам привязываться. То есть создавать фильтр игнорируемых на основе css. Я раньше такие фильтры не делал в этой проге и сейчас попробовал не получилось, думаю вам лучше в теме Website Watcher-а спросить.

    ----------
    Раздачи и акции

    Всего записей: 7198 | Зарегистр. 20-03-2009 | Отправлено: 16:30 04-12-2019
    presentRU

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    То есть создавать фильтр игнорируемых на основе css.

    css там динамически меняется. Так что не вариант, имхо.

    Всего записей: 822 | Зарегистр. 16-10-2006 | Отправлено: 17:07 04-12-2019
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    presentRU
    1) вам в тему по вашей программе
    2) если софт позволяет, то нужно просто игнорировать div по data-name="listings-polepos"

    Всего записей: 15589 | Зарегистр. 20-09-2014 | Отправлено: 21:06 04-12-2019
    gerxer

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите скрипт чтобы отредактировать текстовый файл с субтитрами.
    Грубо говоря нужно объединить субтитры 1-2, 3-4, 5-6 как это сделано для первых 75 строк.
    https://wdho.ru/4Q6t

    Всего записей: 565 | Зарегистр. 19-06-2014 | Отправлено: 13:27 06-12-2019
    Jonmey

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gerxer
    Этого запросто регэкспом не сделать (расчет величин нужен).
    Смотрите в сторону редакторов субтитров. Припоминается, что нечто подобное имеется в каком-то из них (за давностью не могу вспомнить в каком именно).

    Всего записей: 1377 | Зарегистр. 17-01-2011 | Отправлено: 00:00 07-12-2019
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gerxer
    а оригинальный файл??
    более того, между объединяемыми кусками может быть большой промежуток времени, значит здесь не просто объединение двух соседних.

    Всего записей: 15589 | Зарегистр. 20-09-2014 | Отправлено: 00:10 07-12-2019 | Исправлено: Mavrikii, 00:11 07-12-2019
    gerxer

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mavrikii
    Там после 75 строки идут оригинальные.
    Про время не знаю. Нормально все будет думаю, это аудиокнига.

    Всего записей: 565 | Зарегистр. 19-06-2014 | Отправлено: 02:22 07-12-2019
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gerxer
    регулярка тут не очень поможет или будет очень громоздкой.
    проще написать программку, например такую - копируете файл, жмете кнопку.
    https://jsfiddle.net/rtsqfn5u/

    Всего записей: 15589 | Зарегистр. 20-09-2014 | Отправлено: 06:13 07-12-2019
    Jonmey

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gerxer
    Если вас нумерация титров не волнует (ее можно в редакторе субтитров автоматом упорядочить), и слияние титров - тупое попарное (нет титров содержащих более 1 строки текста или вас не волнует, что титров будет более 2-х строк в случае если спариваемые титры изначально содержать более 1 строки), то можно использовать например такой регэксп:
    заменить
    ([\n\r]+)([0-9]+[\n\r]+)([0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3} --> )[0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}([\n\r]+[^\n\r]+)[\n\r]+[0-9]+[\n\r]+[0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3} --> ([0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3})([\n\r]+[^\n\r]+)
    на
    \1\2\3\5\4\6
     
    Время длительности показа титров при этом, разумеется будет стартовать с начала показа первого из спариваемых титров и заканчиваться с окончанием показа второго.

    Всего записей: 1377 | Зарегистр. 17-01-2011 | Отправлено: 07:23 07-12-2019
    gerxer

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mavrikii
    Всё правильно, только нужно чтобы окончание объединенной пары субтитров совпадало с началом показа субтитров 2, 4, 6, а не концом.
     
    Jonmey, тоже самое, только слова некоторые почему то посливались вместе.
     

    Всего записей: 565 | Зарегистр. 19-06-2014 | Отправлено: 08:57 07-12-2019
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gerxer

    Цитата:
    только нужно чтобы окончание объединенной пары субтитров совпадало с началом показа субтитров 2, 4, 6, а не концом

    ну так поправьте код как нужно - там нет ничего сложного.

    Всего записей: 15589 | Зарегистр. 20-09-2014 | Отправлено: 09:05 07-12-2019
    gerxer

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mavrikii
    Да не там какие-то хакерские команды)

    Всего записей: 565 | Зарегистр. 19-06-2014 | Отправлено: 09:32 07-12-2019
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gerxer

    Цитата:
    Да не там какие-то хакерские команды)

    https://jsfiddle.net/w3en41jg/
    я поэтому и спрашивал о первоначальном варианте - нужно показывать преобразование, а не словами.

    Всего записей: 15589 | Зарегистр. 20-09-2014 | Отправлено: 09:39 07-12-2019
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Регулярные выражения


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru