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

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

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Death_INN, программу какую используете?
    BRE:

    Код:
    ^test:\/\/6789\/[[:alpha:]]*\.html$


    Всего записей: 7700 | Зарегистр. 08-09-2001 | Отправлено: 22:10 12-06-2024
    Death_INN

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    los, браузерный regexp, который юзаю в стилях и скриптах

    Всего записей: 3548 | Зарегистр. 24-10-2002 | Отправлено: 23:07 12-06-2024
    MisterMyth

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть ли переменные которые равны:
    1) Номеру строки в файле.
    2) Нужна переменная, которая которая будет увеличиваться на еденицу после каждой замены. Чтобы в итоге получить что типа: текст1, текст2, текст3.
    Для Notepad++.

    Всего записей: 1066 | Зарегистр. 03-01-2015 | Отправлено: 13:38 21-06-2024
    www_world

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

    Цитата:
    Есть ли переменные которые равны:
    1) Номеру строки в файле.
    2) Нужна переменная, которая которая будет увеличиваться на еденицу после каждой замены. Чтобы в итоге получить что типа: текст1, текст2, текст3.
    Для Notepad++.

    регэкспы - не расчетные выражения, а лишь текстовые маски, но с более тонкой настройкой.
    В Notepad++ есть поддержка скриптов (autoit, jscript и проч.) - обращайтесь к их возможностям для решения вашей задачи.

    Всего записей: 492 | Зарегистр. 04-11-2018 | Отправлено: 21:01 21-06-2024
    StInd2013

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, можно ли сделать замену такого вида {текст !} на $1 {текст} с помощью регулярных выражений в notepad++? Т.е. из скобок удалить пробел и восклицательный знак, а символ $1 добавить перед скобками, сам текст в скобках чтобы остался.

    Всего записей: 24 | Зарегистр. 01-11-2013 | Отправлено: 09:38 02-07-2024
    Petrik_Pjatochkin



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

    Цитата:
    Подскажите, можно ли сделать замену такого вида {текст !} на $1 {текст} с помощью регулярных выражений в notepad++? Т.е. из скобок удалить пробел и восклицательный знак, а символ $1 добавить перед скобками

    Между $1 и скобкой я вижу еще пробел, если так то:
     
    EDIT: НЕПРАВИЛЬНО!
     
    Найти: (\{.+)( !\})
    Заменить на: \$1 $1\}

    Всего записей: 771 | Зарегистр. 04-12-2007 | Отправлено: 14:17 02-07-2024 | Исправлено: Petrik_Pjatochkin, 14:59 02-07-2024
    Death_INN

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Petrik_Pjatochkin, а первое вхождение? Может строка такая:
    {test1 !} {test2 !}

    Всего записей: 3548 | Зарегистр. 24-10-2002 | Отправлено: 14:46 02-07-2024
    Petrik_Pjatochkin



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Death_INN
    Да, вы не правы.
    Тогда нужно сделать поиск "ленивым". Наверное так:
    Найти: (\{.+?)( !\})
    Заменить на: \$1 $1\}

    Всего записей: 771 | Зарегистр. 04-12-2007 | Отправлено: 15:01 02-07-2024
    StInd2013

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

    Цитата:
    Наверное так

    Спасибо, работает, но частично. Если в строке одна пара фигурных кавычек, то нормально. А если две пары или три, то выделяет их все, с первой пары до последней. Пример: {и в случае неосторожного} 13.h3 {?} Qh4 {с перспективной позицией, например: !}. Находит всю эту строку и при замене $1 выносится перед первыми кавычками в строке, получается: $1 {и в случае неосторожного}... А нужно, чтобы находилось только, где в кавычках есть пробел и восклицательный знак: {с перспективной позицией, например: !}, и $1 после замены стало перед этими кавычками: $1 {с перспективной позицией, например:}.

    Всего записей: 24 | Зарегистр. 01-11-2013 | Отправлено: 17:32 02-07-2024 | Исправлено: StInd2013, 17:34 02-07-2024
    Petrik_Pjatochkin



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    StInd2013
    Ну тогда так:
    Найти: (\{[^\}]+?)( !\})
    Заменить на: \$1 $1\}

    Всего записей: 771 | Зарегистр. 04-12-2007 | Отправлено: 17:53 02-07-2024
    StInd2013

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Petrik_Pjatochkin, благодарю! То, что нужно!

    Всего записей: 24 | Зарегистр. 01-11-2013 | Отправлено: 18:29 02-07-2024
    PryMan



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем доброго времени.
     
    Гуру, помогите решить такую задачу.
    Нужно найти все непрерывные последовательности заданной длины состоящие из символов диапазона a-z и 0-9.
    Поиск происходит в тексте с рандомным содержанием. В начале и конце искомых данных всегда символы не входящие в диапазон (a-z 0-9).
    Регулярка нужна для Питона, но буду благодарен и просто за принцип. Потом адаптирую.
     

    Цитата:
    Пример строки, которую нужно найти (20 символов): 6b594f2509983d4b29b2
     
    Пример текста в котором ищем:
    PGgzIGNsYXNzPSJyZWxhdGVkX3R5cGVfZm91bmRyeSI+UmVsYXRlZCBUeXBlIEZvdW5kcnk6IDxhIGhyZWY9Ii8yOUxUX1R5cGVfRm91bmRyeS8iPjI5TFQgVHlwZSBGb3VuZHJ5PC9hPjwvaDM+Cjx1bCBjbGFzcz0ic25zX2J1dHRvbnNfZWFjaF9uZXdzIj4KPGxpPjxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vc2hhcmUiIGNsYXNzPSJ0d2l0dGVyLXNoYXJlLWJ1dHRvbiIgZGF0YS10ZXh0PSJbTmV3IEZvbnQgUmVsZWFzZV0gMjlMVCByZWxlYXNlZCAyOUxUIEF6YWhhciBEaXNwbGF5IGFuZCBUZXh0LiIgZGF0YS11cmw9Imh0dHBzOi8vd3d3LjI5bHQuY29tL3Byb2R1Y3QvMjlsdC1hemFoYXItZGlzcGxheS1sYy8iIGRhdGEtbGFuZz0iZW4iIGRhdGEtcmVsYXRlZD0idHlwZW6b594f2509983d4b29b2NhY2hlIiBkYXRhLWNvdW50PSJub25lIiBkYXRhLWhhc2h0YWdzPSJ0eXBlY2FjaGUiPlR3ZWV0PC9hPjwvbGk+CjxsaSBjbGFzcz0iZmJfaGlkZSI+PGRpdiBjbGFzcz0iZmItbGlrZSIgZGF0YS1ocmVmPSJodHRwOi8vdHlwZWNhY2hlLmNvbS9uZXdzLzU4OTUvIiBkYXRhLXNlbmQ9ImZhbHNlIiBkYXRhLWxheW91dD0iYnV0dG9uX2NvdW50IiBkYXRhLXdpZHRoPSI5MCIgZGF0YS1zaG93LWZhY2VzPSJmYWxzZSI+PC9kaXY+PC9saT4KPGxpIGNsYXNzPSJncGx1c19sYXN0Ij48ZzpwbHVzb25lIHNpemU9Im1lZGl1bSIgY291bnQ9ImZhbHNlIj48L2c6cGx1c29uZT48L2xp

     
    P.S. Сорян, строка не переносится, пост уродливый получается, но не знаю как исправить.

    Всего записей: 157 | Зарегистр. 01-08-2018 | Отправлено: 09:12 06-07-2024 | Исправлено: PryMan, 09:15 06-07-2024
    Jonmey

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    PryMan
    [a-z0-9]+
    or
    [\x61-\x7a0-9]+
    ____________
     
    [\x61-\x7a0-9]{20}

    Всего записей: 1376 | Зарегистр. 17-01-2011 | Отправлено: 09:28 06-07-2024 | Исправлено: Jonmey, 09:41 06-07-2024
    U235

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jonmey, я так понял, что PryMan нужно чтобы находило ровно 20 символов, ограниченных нешаблонными символами или началом/концом строки. А ваше выражение сработает, даже если будет не 20, а 30 символов (оно выберет конечно 20, первых или последних...). На Pythone можно так:

    Код:
    result=[i for i in re.findall('[a-z0-9]{20,}',s) if len(i)==20]


    Всего записей: 980 | Зарегистр. 14-12-2005 | Отправлено: 10:03 06-07-2024 | Исправлено: U235, 10:10 06-07-2024
    www_world

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

    Цитата:
    Jonmey, я так понял, что PryMan нужно чтобы находило ровно 20 символов, ограниченных нешаблонными символами или началом/концом строки. А ваше выражение сработает, даже если будет не 20, а 30 символов (оно выберет конечно 20, первых или последних...).


    Цитата:
    [\x61-\x7a0-9]{20}


    Всего записей: 492 | Зарегистр. 04-11-2018 | Отправлено: 10:08 06-07-2024
    PryMan



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jonmey, U235 спасибо!
     

    Цитата:
    ваше выражение сработает, даже если будет не 20, а 30 символов

    Да, действительно, [\x61-\x7a0-9]{20} срабатывает даже если символов больше, чем указано.  
     
    https://regex101.com/r/dPeJX6/1
     
    P.S. Хотя, по условию задачи, подходящей строки больше указанной длины быть не может, так что тоже можно

    Всего записей: 157 | Зарегистр. 01-08-2018 | Отправлено: 10:09 06-07-2024 | Исправлено: PryMan, 10:14 06-07-2024
    U235

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    www_world, ваше выражение  сработает, для 'D111111111116b594f2509983d4b29b21111111S', хотя не должно по
    Цитата:
    В начале и конце искомых данных всегда символы не входящие в диапазон (a-z 0-9).

     

    Всего записей: 980 | Зарегистр. 14-12-2005 | Отправлено: 10:14 06-07-2024
    PryMan



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    U235 скажите, пожалуйста, зачем нужна запятая после 20? {20,}
     
     
    P.S. Понял. Ещё раз спасибо :)

    Всего записей: 157 | Зарегистр. 01-08-2018 | Отправлено: 10:18 06-07-2024 | Исправлено: PryMan, 10:38 06-07-2024
    Jonmey

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    (?<![\x61-\x7a0-9])([\x61-\x7a0-9]){20}(?![\x61-\x7a0-9])
     
    https://regex101.com/r/FGFEXD/1
     
    versus
     
    [a-z0-9]{20,}
     
    https://regex101.com/r/0jHMcp/1

    Всего записей: 1376 | Зарегистр. 17-01-2011 | Отправлено: 10:30 06-07-2024 | Исправлено: Jonmey, 11:27 06-07-2024
    U235

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    PryMan если не поставить ее, то (фильтровать по длине тогда не имеет смысла)  для  'D111111111116b594f2509983d4b29b21111111S'  вернет '111111111116b594f250' , а надо бы возвращать пустой список.

    Всего записей: 980 | Зарегистр. 14-12-2005 | Отправлено: 10:34 06-07-2024
    Открыть новую тему     Написать ответ в эту тему

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