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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

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
    Z4masko



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте просьба подсказать регулярное выражение для осуществления следующей задачи:
    В одной строке имеются несколько URL ссылок. Ссылки разделены между собой запятыми
    Вот пример одной строки:

    Код:
    http://site.ru/path/path/image_xxxxxx.jpg, http://site.ru/path/path/image_yyyyyy.jpg, http://site.ru/path/path/image_zzzzzz.jpg  

    Нужно оставить в строке только названия файлов,  разделённых так же запятой, то есть в строке должно получиться следующее:  
    Код:
    image_xxxxxx.jpg, image_yyyyyy.jpg, image_zzzzzz.jpg  

    То есть надо обрезать часть ссылок до названия файла.
    Количество символов в названии файле везде одинаковое, то есть regexp выражение: «………….jpg» находит все названия файлов, но как бы обрезать часть ссылки до названия файла?

    Всего записей: 718 | Зарегистр. 05-11-2004 | Отправлено: 14:13 18-11-2018 | Исправлено: Z4masko, 14:14 18-11-2018
    YuS_2



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

    Цитата:
    Нужно оставить в строке только названия файлов,  разделённых так же запятой


    Код:
    Что: http[^,]+/([^,]+)
    Чем: \1

    Всего записей: 3202 | Зарегистр. 03-02-2009 | Отправлено: 18:44 18-11-2018
    stokber3

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Задача. Имеется список слов на русском языке. Слов очень много и различной длины. Каждое слово с новой строки, без лишних пробелов по краям. Нужно разделить каждое слово на две части всеми возможными способами.  
    Например, было:
    слово
    Стало:
    с лово#сл ово#сло во#слов о
    Символ решетки не принципиален, разделитель можно использовать любой.  
    Вопрос: можно ли и как это сделать в один проход (одной регуляркой)?

    Всего записей: 45 | Зарегистр. 31-01-2015 | Отправлено: 21:34 18-11-2018
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    stokber3
    найти (?m)^(.)+\r?$
    найти (?m)^(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?)\r?$
    заменить на \1 \2\3\4\5\6\7\8\9\10#\1\2 \3\4\5\6\7\8\9\10#\1\2\3 \4\5\6\7\8\9\10#\1\2\3\4 \5\6\7\8\9\10
     
    чисто идея... выражение "заменить на" должно иметь столько групп сколько максимальная длина слова. Хотя в итоге у коротких слов останутся пустышки с разделителями в конце по ширине длинного слова. В общем вывод: не получится. И второй вывод зачем решать всё регуляркой, для этого есть программный язык.

    Всего записей: 4189 | Зарегистр. 03-05-2006 | Отправлено: 10:21 19-11-2018
    VadKomarov



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Здравствуйте. Помогите решить задачу.
     
    Есть выражение, извините если что. Написал как сумел. Плохо знаю...
     

    Код:
    (\d{1,2}).(\d{1,2}).(\d{1,4})\s-\s*([\s\S]*?)кем\s*\(\s*орган\s*\)\S*([\s\S]*?)\s*(?:статьи\S*([\s\S]*?)\n([\s\S]*?))?(?:срок\S*([\s\S]*?)\n)?(?:Комментарии \S*([\s\S]*?)\n)?(?:Дополнительные отметки\S*\s*([\s\S]*?))?(?:кем\S*\s*([\s\S]*?))?(?:срок\S*\s*([\s\S]*?))?(?:(\d{1,2}).(\d{1,2}).(\d{1,4})\s-\s*([\s\S]*?)убыл\s*([\s\S]*?))?($|- - - -)

     
    и есть текст для обработки
     

    Код:
    ( 4 )
    08.04.2014 - ННННННННН кем( орган): ЙЙЙЙЙЙЙЙЙЙ  
    ЙЙЙЙЙЙЙЙЙЙЙЙЙЙЙЙЙ  
    ЙЙЙЙЙЙЙЙЙЙ ЙЙЙЙЙЙЙЙЙЙЙЙЙ
    статьи: ЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦ
    УУУУУУУУУУУУУУУУУ Срок: КККККККККККККККККККК
    Комментарии : ЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕ
    Дополнительные отметки: ФФФФФФФФФФФФФФФФФФФФФФФ
    ФФФФФФФФФФФФФФФ
    ФФФФФФФФФФФФФФФФФФ Кем : ЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
    ЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
    Срок: ССССССССССССССССССССССССССССССССССССС
    СССССССССССССССССССССССССССС
    22.12.2014 - ННННННННННННННН : НННННННННННННННН  
    НННННННННН. Убыл в: ЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗ  
    ЗЗЗЗЗЗЗЗЗЗЗ ЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗ  
    ЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗ ЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗ  
    ЗЗЗЗЗЗЗЗЗЗЗЗЗЗ
     
    ( 5 )
    03.04.2017 - НННННННННННН кем( орган): ЙЙЙЙЙЙЙЙЙЙЙЙЙ
    ЙЙЙЙЙЙЙЙЙЙЙЙЙЙЙЙЙЙЙЙ
    статьи: ЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦ
    ууууууууууууууууууууу Срок: КККККККККККККККККККККК
    Комментарии : ЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕ
    Дополнительные отметки: ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
    - - - -

     
    Надо как то выбирать раздел [4] и раздел [5] и т.д. Разделы могут отделены быть друг от друга либо пустой строкой либо {- - - -}
    В разделах могут отсутствовать некоторые строки.
    В примере раздел [4] состоит из максимального количества групп а в разделе [5] отсутствуют многие записи.
    При выборе почему то после слов УБЫЛ весь текст берется до окончания
     
    Как найти пустую строку? Ну или полностью сделать корректным регулярное выражение.
     
    Ни как не получается выбрать текст по группам.
    Спасибо заранее.

    Всего записей: 100 | Зарегистр. 01-05-2005 | Отправлено: 04:33 26-11-2018 | Исправлено: VadKomarov, 06:56 26-11-2018
    YuS_2



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

    Цитата:
    Помогите решить задачу.

    Чтобы помочь решить задачу, требуется описание самой задачи от начала и до конца.
    Попытки её решения, могут быть попросту неверными, а разбираться в том, что уже написано и не работает - непродуктивно.
     
    Если я правильно понимаю, то:

    Цитата:
    Надо как то выбирать раздел [4] и раздел [5]

    - только часть задачи, а вот:

    Цитата:
    и т.д.

    - надо развернуть
     
    Отдельные задачи тоже непонятны:

    Цитата:
    Как найти пустую строку?

    Найти можно так, например:

    Код:
    ^$

    если учитывать, что строка с единственным пробелом, уже не пустая строка.

    Цитата:
    Ни как не получается выбрать текст по группам.

    Что именно должно быть в группах?

    Всего записей: 3202 | Зарегистр. 03-02-2009 | Отправлено: 07:16 26-11-2018 | Исправлено: YuS_2, 07:17 26-11-2018
    VadKomarov



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    YuS_2
     
    Суть такая есть текст:
    Текст для обработки
     
    надо выбрать текст начинающийся на дату и последующие вложения:
    Пример:

    Код:
     
    08.04.2014 - ННННННННН кем( орган): ЙЙЙЙЙЙЙЙЙЙ  
    ЙЙЙЙЙЙЙЙЙЙЙЙЙЙЙЙЙ  
    ЙЙЙЙЙЙЙЙЙЙ ЙЙЙЙЙЙЙЙЙЙЙЙЙ
    статьи: ЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦ
    УУУУУУУУУУУУУУУУУ Срок: КККККККККККККККККККК
    Комментарии : ЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕ
    Дополнительные отметки: ФФФФФФФФФФФФФФФФФФФФФФФ
    ФФФФФФФФФФФФФФФ
    ФФФФФФФФФФФФФФФФФФ Кем : ЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
    ЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
    Срок: ССССССССССССССССССССССССССССССССССССС
    СССССССССССССССССССССССССССС
    22.12.2014 - ННННННННННННННН : НННННННННННННННН  
    НННННННННН. Убыл в: ЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗ  
    ЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗ ЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗ  
    ЗЗЗЗЗЗЗЗЗЗЗЗЗЗ
     

     
    должно выбраться по группам ДАТА, НННННН, ЙЙЙЙЙЙ, ЦЦЦЦЦ и т.д. как на этом сайте, дальше выбранные данные буду распределяться в программе по нужным полям, соответственно если части текста будут отсутствовать то их не будет использовать в выборках.
     
    Строка разделяющая выборки (1), (2), (3)...... обычно просто пустая без пробела, либо содержащая текст {- - - -}
     
    На этом же сайте regex101.com пробую протестировать в моем регулярном выражении
    Цитата:
    ^$
    но почему то не выбирает пустую строку.
     
    В конечном результате должно быть в одном из совпадений (как на сайте)
     
    Результат
     
    Ну как то так...

    Всего записей: 100 | Зарегистр. 01-05-2005 | Отправлено: 09:50 26-11-2018 | Исправлено: VadKomarov, 10:06 26-11-2018
    YuS_2



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

    Цитата:
    но почему то не выбирает пустую строку.

    там надо опцию соответствующую включить...
     

    Цитата:
    Ну как то так...

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

    Всего записей: 3202 | Зарегистр. 03-02-2009 | Отправлено: 11:53 26-11-2018
    Maksimus772



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

    Цитата:
    прим 1
    Luchshe.chem.lyudi.s01e01.2018.WEB-DL.(1080p).Getty.mkv
    Luchshe.chem.lyudi.s01e02.2018.WEB-DL.(1080p).Getty.mkv
     
    прим 2
    01_Домашний_арест_e01.mkv
    02_Домашний_арест_e02.mkv
     
    прим 3
    Домашний_арест.01 из 16.mkv
    Домашний_арест.02 из 16.mkv
     
    прим 4
    DomashnijArest-2018 by Ivan007 01из16.mp4
    DomashnijArest-2018 by Ivan007 02из16.mp4
     

    а на выходе должно получаться:

    Цитата:
     
    01.mkv
    02.mkv
     

    Всего записей: 228 | Зарегистр. 24-10-2011 | Отправлено: 09:27 01-12-2018 | Исправлено: Maksimus772, 09:38 01-12-2018
    U235

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maksimus772
    Мне кажется, что достаточно сделать сортировку по алфавиту и применить групповое переименование. Все.
    Во всяком случае, для ваших примеров это так.

    Всего записей: 744 | Зарегистр. 14-12-2005 | Отправлено: 12:27 01-12-2018 | Исправлено: U235, 12:28 01-12-2018
    sikemo

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

    Всего записей: 1277 | Зарегистр. 27-11-2008 | Отправлено: 13:03 01-12-2018
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Точней даже это единственный вариант если имена имеют самый разный формат. Так как для регулярки нужно, чтобы на входе все имена были строго заданного формата.

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

    Всего записей: 6821 | Зарегистр. 20-03-2009 | Отправлено: 13:04 01-12-2018
    Maksimus772



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

    Цитата:
    Мне кажется, что достаточно сделать сортировку по алфавиту и применить групповое переименование. Все.  

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

    Цитата:
    Так как для регулярки нужно, чтобы на входе все имена были строго заданного формата.

    занчит универсального шаблона нет, ясно.

    Всего записей: 228 | Зарегистр. 24-10-2011 | Отправлено: 14:05 01-12-2018
    sikemo

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    это к подходу, это не к универсальному шаблону. Он появится, если вы сможете собрать или правильнее сказать, формализировать задачу

    Всего записей: 1277 | Зарегистр. 27-11-2008 | Отправлено: 19:33 01-12-2018
    DimitriusXZ

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть строка URL вида:
    http://www.site.com/topics/file-123vb/2008/page-1980865e.htm
    Нужно составить запрос чтобы он "выделял" последнюю часть строки "page-1980865e.htm".
    Все испробовал - правильно ничего не получилось.
    Работал в Perl.
    Пожалуйста, подскажите, как правильно составить запрос?

    Всего записей: 689 | Зарегистр. 17-01-2010 | Отправлено: 06:03 14-12-2018
    YuS_2



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

    Цитата:
    чтобы он "выделял" последнюю часть строки "page-1980865e.htm".

    Примерно так:

    Код:
    https?:\S+\/\K\S*

    Но в ссылках не должно быть прямых пробельных символов, т.е. ссылки, как минимум, должны быть percent-encoded...

    Всего записей: 3202 | Зарегистр. 03-02-2009 | Отправлено: 07:47 14-12-2018
    los

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет, кто-нибудь подскажет?
    есть такое выражение:
    ^(?<=[^0-9.]|^)[1-9][0-9]{0,2}(\.([0-9]{0,3})){3}(?=[^0-9.]|$)
    выделяет ip, что нужно добавить чтобы выделяло еще и cidr?
    сейчас
    111.111.111.111 и т.п.
    нужно еще и  
    111.111.111.111/24 и т.п.

    Всего записей: 4911 | Зарегистр. 08-09-2001 | Отправлено: 10:15 15-12-2018
    sikemo

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    типа /24?
     
     
    \/\d+

    Всего записей: 1277 | Зарегистр. 27-11-2008 | Отправлено: 15:13 15-12-2018
    los

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

    Цитата:
    типа /24?  

    типа, но не

    Цитата:
    \/\d+

    Всего записей: 4911 | Зарегистр. 08-09-2001 | Отправлено: 18:32 15-12-2018
    Cossack

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

    Цитата:
    выделяет ip, что нужно добавить чтобы выделяло еще и cidr

    Посмотри тут
    https://www.regextester.com/93987
    https://www.regextester.com/99476

    Всего записей: 15540 | Зарегистр. 26-02-2002 | Отправлено: 21:38 15-12-2018
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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

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


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru

    Рейтинг.ru