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

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

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

    Цитата:
    пока живьем не увижу - буду считать сказками

    Вообще-то я вам и предлагал проверить Могу сам проверить, если напишите рэгапс.

    Цитата:
    notepad++ логичнее использовать

    Давно с него слез. Там, наверное, до сих пор моя сборка весит. Даже близко с Акелькой не валялся. И очень медленный.

    Всего записей: 4823 | Зарегистр. 11-03-2003 | Отправлено: 00:12 16-09-2024
    www_world

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    Все там в notepad++ поддерживается - и скриптами, и плагинами. Не стоит фантазировать.
    Если вам лично нравится AP - вам никто не запрещает пользовать. Однако не стоит сочинять небылицы про другие инструменты.
    Зы. Лично я ни одним из этих двух инструментов не пользуюсь. Иногда запускаю лишь по просьбам трудящихся для персональной подгонки регэкспа. В моем наборе софтов никто "новых регэкспов не сможет выдумать" (за исключением тех, кто способен создать новый никем доселе невиданный движек с нуля).
    Разумеется, новые регеэспы в стиле "поиск двух символов вместо одного при использовании символа '.'" к таковым не относятся, как и костыльное присобачивание посредством сторонних инструментов поддержки стандартных регэкспов, которые в хостовом приложении слегка нэпонимэ.
    В общем, все беседы в пользу бедных - это уже без меня (считаю пустой тратой времени).
     
    Разумеется, здоровое желание утереть мне нос (не словами, но делом, которое можно потрогать руками) - приветствуется, как-то - новый регэксп (не из набора поддерживаемых js или др. движков) и не из набора регэкспов, которые хостовая программа декларирует, но по факту - не поддерживает. Он должен быть таким же универсальтным, как и остальные регэкспы и в той же мере свободно с ними сочетаться, приводя всегда с воспроизводимому и однозначному результату независимо от текста. Также он не может являться простой комбинацией существующих операторов и выражений в регэкспах или быть предназначенным лишь для неких "особых" случаев, а не для любых текстов.
     
    Добавлено:

    Цитата:
    Вообще-то я вам и предлагал проверить

    Проверить, как работает js или сам AP?
    Первое - в общих чертах мне известно (АР - для этого лишний).
    Если же речь собственно про AP (без любых костылей), то мне такое предложение не попадалось на глаза. Но мог и не заметить.

    Всего записей: 437 | Зарегистр. 04-11-2018 | Отправлено: 00:36 16-09-2024
    AZJIO



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

    Цитата:
    Все там в notepad++ поддерживается - и скриптами, и плагинами. Не стоит фантазировать.

    Ну я скажу твоими словами, пока не покажешь не поверю. Я писал (переводил, дописывая раздел UDL) справку по Notepad++, если вам вдруг покажется что я в нём не разбираюсь (с 15-летним стажем использования и со своими сборками для AutoIt3 и PureBasic).
    И я обращался на офсайте, чтобы регулярные выражения были добавлены в UDL , и один из соавторов даже пытался что-то писать. Я даже писал плаг Highlight, чтобы устранить этот недостаток хотя бы частично, и немного не хватило, чтобы написать плаг подсветки в реальном времени, так как пришло время отказа от нпп. Я даже написал My_Notepad_Sci с использованием подсветки регулярными выражениями, и думал это подтолкнёт автора.

    Всего записей: 4536 | Зарегистр. 03-05-2006 | Отправлено: 01:30 16-09-2024 | Исправлено: AZJIO, 03:03 16-09-2024
    www_world

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    Дорогой, тут вы - изобретатель "новых регэкспов и синтаксисов".  А не я.

    Цитата:
    В Notepad++ не поддерживаются регвыр при создании собственного синтаксиса, а в AkelPad это просто идеально, я сделал несколько новых

    Всего записей: 437 | Зарегистр. 04-11-2018 | Отправлено: 03:23 16-09-2024
    AZJIO



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

    Цитата:
    AZJIO
    Все там в notepad++ поддерживается

     

    Цитата:
    В Notepad++ не поддерживаются регвыр при создании собственного синтаксиса

     
    как видите я отрицаю это, а у вас поддерживается. Свои слова я помню, они напоминают вам об этом. Поэтому повторю, покажите где там всё поддерживается.
     

    Всего записей: 4536 | Зарегистр. 03-05-2006 | Отправлено: 03:40 16-09-2024
    www_world

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    OK, изобретайте ваши регекспы и синтаксисы (которые никому нельзя показывать), и продолжайте утверждать, что js-скрипты и проч. - это удел лишь несравненного (но всеми брошенного) Akelpad.
    Но без меня.

    Всего записей: 437 | Зарегистр. 04-11-2018 | Отправлено: 04:06 16-09-2024 | Исправлено: www_world, 04:11 16-09-2024
    AkulaBig

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

    Цитата:
    Первое - в общих чертах мне известно (АР - для этого лишний).

    Как работает АР, вернее его скрипты.
    www_world

    Цитата:
    Кстати, мне не удалось AP заставить корректно обрабатывать регэкспы с условием (то, что у вас на скрине (?(1)а|b)). Но не исключаю, что "я посто не умею готовить AkelPad".

    Ваши-же слова. Я вам и написал, откуда я взял этот скрин. Думал вы хотите разобраться с этим.

    Цитата:
    Если же речь собственно про AP (без любых костылей), то мне такое предложение не попадалось на глаза. Но мог и не заметить.

    Почему без костылей? Скрипты полноценные помощники Акельки. Раз не работает именно рэгапс определенного скрипта, именно его я вам и предложил проверить. Вот мой пост:

    Цитата:
    То-есть чтобы проверить это условие, вам необходимо установить в Акельку плагин Script.dll. Закинуть в папку скриптов FindReplaceEx.js и только тогда можно будет протестировать.

    Но если вы напишите рэгапс, я сам проверю его. Просто надо понять, какой мы должны получить результат. И мне нужно время, чтобы разобраться. А то, что в Акельке сам редактор и его скрипты используют разный формат рэгапсов, я себе уже доказал. Где-то пробелы нельзя представить в виде \x20, а где-то можно. Наверняка и другие несовпадения есть.

    Цитата:
    но всеми брошенного

    Вы просто не следите за ним. Я пользуюсь версией AkelPad.exe v4.9.9 r4449 [27.06.2024]. В которой, кстати, очень много полезных нововведений от оф версии 4.8.8. Например, возможность использования нескольких ини-файлов. Что я использую в своем плагине для ТС. Так что Акелька нормально развивается. Да и зачем законченному продукту изменяться? Он ведь бесплатный. Это МС Офис клипают новые версии до безумия с одной целью, продать его. А заменить иконки в Акельки я и так могу. Без выпуска новой версии, как для Офиса. И никто не мешает написать новый плагин, новый скрипт, чтобы получить какой-то новый функционал. Вот как-раз NPP в этом плане мертвый. Перестал я обновлять свою сборку и больше никто не может обновлять ее. Хотя желающих много. Потому что у меня там на все значки назначены. А поддерживать их от версии к версии тяжкий труд.

    Всего записей: 4823 | Зарегистр. 11-03-2003 | Отправлено: 05:57 16-09-2024 | Исправлено: AkulaBig, 06:16 16-09-2024
    www_world

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AkulaBig
    Слова не нужны. Достаточно процитировать регэксп, который по вашему мнению работает коректно в AP, а по моему - не коректно (или вы это предполагаете). Неужели это так сложно сделать?

    Всего записей: 437 | Зарегистр. 04-11-2018 | Отправлено: 06:14 16-09-2024
    AkulaBig

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

    Цитата:
    Достаточно процитировать регэксп, который по вашему мнению работает коректно в AP, а по моему - не коректно

    Пока вы писали, я отредактировал пост. Простейший пример я написал. В Акельке в поле замена можно написать \x20, а в скрипте SearchReplace.js - нельзя.

    Всего записей: 4823 | Зарегистр. 11-03-2003 | Отправлено: 06:19 16-09-2024
    www_world

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AkulaBig
    Напишите регэксп без слов.

    Всего записей: 437 | Зарегистр. 04-11-2018 | Отправлено: 06:26 16-09-2024
    AZJIO



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

    Цитата:
    AZJIO
    OK, изобретайте ваши регекспы и синтаксисы (которые никому нельзя показывать),

    Всё изобретено и выложено (показано).

    Цитата:
    и продолжайте утверждать, что js-скрипты и проч. - это удел лишь несравненного (но всеми брошенного) Akelpad

    Ну вообще то js пока не выпал из веб-страниц. Сейчас даже андроид приложения с веб-мордой используются на том же js. И выкидывать js из принципа, потому что он не такой как PCRE значит ограничивать себя в возможностях. Сейчас на js намного легче написать кроссплатформенную прогу благодаря поддержки на всех ОС.
    В AkelPad регвыры работают. Если кто-то использует SearchReplace.js, то это не показатель.

    Всего записей: 4536 | Зарегистр. 03-05-2006 | Отправлено: 08:11 16-09-2024 | Исправлено: AZJIO, 08:12 16-09-2024
    AkulaBig

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

    Цитата:
    Напишите регэксп без слов.

    Вот работа встроенной в Акельку команды Заменить "" Command(4161):

    А вот скрипта SearchReplace.js:

     
    Добавлено:
    AZJIO

    Цитата:
    Если кто-то использует SearchReplace.js

    Его все используют, потому что он по дефолту присутствует в сборке Акельки. И в вашей сборке он присутствует

    Цитата:
    В AkelPad регвыры работают.

    Да и в SearchReplace.js тоже работают. Просто несколько другой формат. Вообще мне этот скрипт не нравился. И в выложенной сборке я его не использую, хотя тоже присутствует. Так как распространяемые со сборкой скрипты я не удаляю. Я использую FindReplaceEx.js. Но на данный момент это самый удобный скрипт для новичков. Нажал справа галку и перед тобой все шаблоны рэгапсов. И этот скрипт входит в сборку. То-есть любой новичок им пользовался. А так как я свою сборку позиционирую для новичков, альтернативы SearchReplace.js нет.

    Всего записей: 4823 | Зарегистр. 11-03-2003 | Отправлено: 08:26 16-09-2024 | Исправлено: AkulaBig, 08:27 16-09-2024
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AkulaBig
    Вообще строка замены не является регулярным выражением. И судить о возможностях по этому показателю немного странно. Я бы даже сказал обработка строки замены как код, типа предупреждать надо. В каждом конкретном случае это документируется. Например если в AutoIt3 можно использовать ссылки \1 в строке замены, то это не из коробки PCRE, а запрограммировано авторами AutoIt3. Аналогично в PureBasic, там этого вообще нет, пришлось писать функцию, точнее переделывать чужие функции для поддержки этих ссылок. По сути автор добавил прочтение \x20 как спецсимволов. В js поддерживается ссылки.

    Всего записей: 4536 | Зарегистр. 03-05-2006 | Отправлено: 08:41 16-09-2024 | Исправлено: AZJIO, 08:45 16-09-2024
    AkulaBig

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

    Цитата:
    Вообще строка замены не является регулярным выражением.

    Да, вы правы. Поэтому я и просил нашего сансея составить правильный рэгэксп с функцией условия из FindReplaceEx.js (?(1)x|y) Видимо придется самому придумывать. Но позже.
     
    Добавлено:
    Оказалось нетрудно найти в инете пример. Теперь надеюсь наш злой сансей убедится в моих предположениях
    Встроенная в Акельку команда Command(4161):

    Скрипт FindReplaceEx.js:

    Скрипт SearchReplace.js:

    Всего записей: 4823 | Зарегистр. 11-03-2003 | Отправлено: 09:10 16-09-2024
    73



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

    Всего записей: 1222 | Зарегистр. 18-08-2012 | Отправлено: 15:34 16-09-2024 | Исправлено: 73, 15:34 16-09-2024
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    73
    На https://regex101.com/ есть же выбор движков слева столбик, там текст FLAVOR и под ним имена движков.
     
    AkulaBig
    Я задал вопрос на счёт AkelPad на офсайте, чтобы прояснить какой движок используется.

    Всего записей: 4536 | Зарегистр. 03-05-2006 | Отправлено: 16:56 16-09-2024
    AkulaBig

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Если SearchReplace.js посмотреть, кажется что он-то как-раз должен основываться на движке самого Акельки. В FindReplaceEx.js идет перечисление многих функций, а в SearchReplace.js чисто интерефейс. А почему-то совершенно наоборот.
     
    Добавлено:

    Цитата:
    На https://regex101.com/ есть же выбор движков

    Для интереса попробовал выражение (?(?<=a)m|p) Java 8 ругается, php поддерживает. Другие тоже по разному.

    Всего записей: 4823 | Зарегистр. 11-03-2003 | Отправлено: 18:18 16-09-2024
    www_world

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

    Цитата:
    А есть ли инструмент, возможно, набор регэкспов для определения того или иного, скажем так, диалекта регэкспов для софтов, в которых они исполняются? То есть определить заранее будет ли в конкретной программе корректно работать конкретный регэксп. Это реально или как всегда, метод научного тыка?

    У любой серьезной программы это указано в справке. Если же используется не один из общеизвестных синтаксисов, то в справке содержится его описание.
    Вы же пользуетесь UltraEdit - там в справке все описано про то, что и как он поддерживает в регэкспах (три синтаксиса).
    Если же речь об абстрактных, заведомо сложных регэкспах - то только опытным путем для конкретной программы. Выше упоминал, о некоторых проблемах в именно в реализации движков (а не самого используемого синтаксиса). В этом смысле, если планируется использование сложных регэкспов, то стоит выбирать инструмент, автором которого является первокласный специалист по регэкспам. Альтернативным вариантом является выбор инструмента, в котором сложную операцию можно разбить на несколько простых, требующих простых регэкспов, и выполнять эти шаги одним проходом (в Ultraedit такое возможно, даже для тех, кто ваще не программер - с помощью макросов, которые являются фактически записью нажатий кнопок в редакторе и осваеваемы буквально за пару часов теми, кто знает компьютер на уровне элементарной терминологии, напр., чем отличаются окончания строк в Unix от PC или от МАС).

    Всего записей: 437 | Зарегистр. 04-11-2018 | Отправлено: 01:00 17-09-2024 | Исправлено: www_world, 01:17 17-09-2024
    73



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    www_world
    Благодарю, учту на будущее. Уже посетил указанный сайт, теперь осталось понять на что он ругается при вводе регэкспов

    Всего записей: 1222 | Зарегистр. 18-08-2012 | Отправлено: 06:27 17-09-2024
    AkulaBig

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Лично я, на примере AkelPad, сделал вывод, что тестировать надо на конкретном инструменте, на котором собираетесь использовать регэкспы. Толку от того, что на 101 выражение работает, если в реале не работает.

    Всего записей: 4823 | Зарегистр. 11-03-2003 | Отправлено: 07:42 17-09-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