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

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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А как такой алгоритм:
    0. Исправляем первую строку вручную.
    1. Находим Enter конца 1-й строки - это то, чего нет в строке примера, которая якобы должна дать представление о задаче, фейк вместо реального текста, так не бывает!
    2. Удаляем ВСЕ пробелы до первого печатаемого знака на всех линиях.
    3. Возврат к началу.
    4.  Находим Enter конца первой строки, вставляем после него на следующую строку ТРИ или сколько хочется табов до первого печатаемого знака.
    5. То же для последующих строк.  
    Все!

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

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

    Цитата:
    работает, но без ИЛИ "|".

    Это да, я выше писал.

    Цитата:
    AkelPad выдаёт ошибку указывая позицию на которой сбой и выделяя текст регвыр начиная со сбойного символа.

    Понятно, что и у меня такая-же реакция. Раз мы про Акельку пишем.
    А вот со скриптами интереснее. Тот-же SearchReplace.js не все поддерживает, что поддерживает FindReplaceEx.js и родная замена Акельки.

    Цитата:
    там же рекурсивная ссылка, не для AkelPad.

    Понятно.

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

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    73
    А как быть, если табов в разных строках разное количество дб?
    Например (точки - это пробелы; для наглядности)
    ............gjjh hjgjhghj
    ............hgjhgj jhgjhg
    ................kjkjhkj kjlkjljl
    ................jkhjkhjk jhlkjlk
    ............lkjlj lk;lk

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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    www_world
    А тогда тредстартеру нужно было на этом сделать особый акцент. Иначе это как в старом анекдоте - "вот что такое нечетко поставленная задача". Пусть меня ткнут носом в подобные хотелки, чтобы каждые 4 пробела в начале строки заменялись на таб, а что останется, от одного до трех, да и хрен с ним. Короче, опять замылили мое предложение с предоставлением образца текста для обработки регвырами. Вот так и будет страницами переливание из пустого в порожнее. Нет образца? Делай сам, врукопашную, тыкскать, ибо телепанием заниматься не есть правильно.  

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

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

    Цитата:
    Короче, опять замылили мое предложение с предоставлением образца текста для обработки регвырами.

    Да вон-же выше я прямо в пост вставил. Какой еще образец вам нужен? Может вы имеете ввиду образец текста ПОСЛЕ обработки, а не ДЛЯ обработки?
    Ну и как-бы вопрос давно решен. Смысл к нему возвращаться?
    Я уже обратную функцию написал - замену табов на 4 пробела.
    www_world
    В связи с этим есть вопрос. Приведу строку из SearchReplace.js полностью. Иначе пробелы не будет видно:
    Template31=Заменить табуляцию на 4 пробела=what:/([ ]{4})*\t(?!\s*$)/ with:/    /rm
    Можно-ли это выражение /    / заменить на видимое на экране? То-есть в поле На что вбито просто 4 пробела. Естественно их не видно. Если в поле вбить типа ([ ]{4}) или [    ] или (    
     ), то эти символы и отображаются. Просто хотелось-бы больше наглядности.

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AkulaBig
    spacetotab - написал на PureBasic, Readme.txt в комплекте. Обновил 1 раз.
     
    AkulaBig

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

    Так это бы обычная замена пробелов на таб.  

    Код:
    Text = ReplaceString(Text, "    ", "    ")

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

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

    Цитата:
    spacetotab

    Через командную строку любое выражение через Multi_SR.js можно выполнить. Но тогда это придется в меню добавлять. А я не хочу лишних строк.

    Цитата:
    Так это бы обычная замена пробелов на таб.  

    Да я уже хорошо подумал и выше написал, что это полезная функция. Так в меню текст от хоткея отделяется. Так что пусть так и будет.

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



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

    Цитата:
    выше написал, что это полезная функция
    это не просто фича, это просто не тема регулярный выражений.

    Код:
    AkelPad.TextReplace(0, "МойТекстДляПоиска", "МойТекстДляЗамены", 0x00200001 /*FRF_DOWN|FRF_BEGINNING*/ , 0x1 /*RRF_ALL*/ );

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

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AkulaBig
    Ну я не знаю что там интерфейс поддерживает, а что нет.  
     
    Например F9 или FA серым он поддерживает из полной 8-битной кодировки?
    Цвета наверное не поддерживает. Если можно юникодом - то там навалом символов, которыми схематично пробелы можно указать, даже тут иногда что-то получается изобразить ••••

    Всего записей: 437 | Зарегистр. 04-11-2018 | Отправлено: 10:50 15-09-2024
    73



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AkulaBig
    Цитата:
    Какой еще образец вам нужен?
    В виде текстового файла из нескольких строк, лучше, с возможными вариантами и со всеми непечатаемыми знаками, до и после обработки. Иначе это из разряда "Мне Рабинович по телефону напел".

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

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

    Цитата:
    это не просто фича, это просто не тема регулярный выражений.
     

    Мне именно регуляркой надо было, чтобы использовать в шаблонах SearchReplace.js.
    www_world

    Цитата:
    Например F9 или FA


    Цитата:
    Если можно юникодом

    Что-то я упустил, что можно в нех представить. Проверю.
     
    Добавлено:
    www_world

    Цитата:
    Например F9 или FA серым он поддерживает из полной 8-битной кодировки?
    Цвета наверное не поддерживает. Если можно юникодом - то там навалом символов, которыми схематично пробелы можно указать, даже тут иногда что-то получается изобразить ••••

    Ниче не берет. Только return "    "; Даже \x20 нельзя. Ладно, забил.

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



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

    Цитата:
    Можно-ли это выражение /    / заменить на видимое на экране?

    наиболее удобная для поиска таблица:
    https://unicodes.jessetane.com/?search=circle
    введи в поисковой строке например "стрелка", "треугольник", "круг", "точка" (на англ. языке) и по описанию к символам он выведет запрашиваемые.
    Строка замены вроде не обрабатывает код символа, можно сохранить скрипт в юникоде и вставить символ как есть, как текст.
    Однако если обрабатываемый файл в ANSI, то его невозможно будет сохранить без потери юникодных символов (менее 255, FF).

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

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

    Цитата:
    Строка замены вроде не обрабатывает код символа, можно сохранить скрипт в юникоде и вставить символ как есть, как текст.

    Не обрабатывает. Ничего там не вставишь, кроме 4 пробелов, либо функцию подобную return "    ";
    73

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

    Какой вы упрямый. Хорошо, превратите строки:
    @@@@@@@@@@@@@@Какой вы упрямый@@@@@@@@@@
    @@@@вы очень упрямый@@@@@@@
    @@вы супер упрямый@@@@
    в строки
    &&&@@Какой вы упрямый@@@@@@@@@@
    &вы очень упрямый@@@@@@@
    @@вы супер упрямый@@@@

    Всего записей: 4823 | Зарегистр. 11-03-2003 | Отправлено: 13:53 15-09-2024 | Исправлено: AkulaBig, 13:54 15-09-2024
    73



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AkulaBig
    Да уж... Страшное дело, когда человек не понимает смысла того, что ему пишут... Ладно, как Некрасов когда-то сказал:
    Цитата:
    И пошли они, солнцем палимы,
    Повторяя: «Суди его бог!»,
    Разводя безнадежно руками,
    И, покуда я видеть их мог,
    С непокрытыми шли головами...  


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

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

    Цитата:
    Страшное дело, когда человек не понимает смысла того, что ему пишут...

    Согласен. Что вам еще надо, я не знаю. Как вам объяснить что никаких тестовых файлов у меня нет, я не знаю. Выложил конкретное задание, вам все равно не нравится.

    Всего записей: 4823 | Зарегистр. 11-03-2003 | Отправлено: 16:33 15-09-2024 | Исправлено: AkulaBig, 16:34 15-09-2024
    los

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

    Цитата:
    Хорошо, превратите строки:



    Всего записей: 7629 | Зарегистр. 08-09-2001 | Отправлено: 17:30 15-09-2024
    www_world

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

    Цитата:
    Какой вы упрямый. Хорошо, превратите строки:
    @@@@@@@@@@@@@@Какой вы упрямый@@@@@@@@@@
    @@@@вы очень упрямый@@@@@@@
    @@вы супер упрямый@@@@
    в строки
    &&&@@Какой вы упрямый@@@@@@@@@@
    &вы очень упрямый@@@@@@@
    @@вы супер упрямый@@@@  

    Так наглядее:

    Код:
    ··············Какой вы упрямый··········
    ····вы очень упрямый·······
    ··вы супер упрямый····

    в строки:

    Код:
    »   »   »   ··Какой вы упрямый··········
    »   вы очень упрямый·······
    ··вы супер упрямый····

     
    Кстати, мне не удалось AP заставить корректно обрабатывать регэкспы с условием (то, что у вас на скрине (?(1)а|b)). Но не исключаю, что "я посто не умею готовить AkelPad".
     
    los
    В AP оно не фунциклирует.
    Если речь бы шла просто о регэкспе, то разговор кончился бы три страницы назад.
    А речь идет о связке "регэксп+AkelPad"(со всеми его прихотями).
    Например, 73 уже предлагал лобовым брутт-форсом получать нужный вариант замены.
    В принципе, рабочие варианты регэкспов на АР были выше, но ведь нет предела "совершенствованию дедушкиного мопета" - собственно об этом и все 3 страницы.

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

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

    Цитата:
    Но не исключаю, что "я посто не умею готовить AkelPad".

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

    Всего записей: 4823 | Зарегистр. 11-03-2003 | Отправлено: 22:58 15-09-2024 | Исправлено: AkulaBig, 23:00 15-09-2024
    www_world

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

    Цитата:
    Скорей всего именно из-за этого.  

    В силу того, что словам в интернетах, которые не могу проверить, не верю давно. то пока живьем не увижу - буду считать сказками.
    Любые js в этом вопросе - не авторитет и не доказательство, поскольку используют js-движек, с его собственными регэкспами, а в контексте обсуждаемых проблем с поддержкой регэкспов самим AP - все, что связано с js - по барабану. Например js-скриптом можно вызвать сторонний полноценный обработчик регэкспов, но в таком случае сам AkelPad оказывается лишним и ненужным в этом алгоритме действий. Но, вам он принципиально необходим, а значит важны лишь его собственные проблемы и возможности, а не способы как сочинить некую схему, куда и AkelРаd можно тиснуть любой ценой.
    Если принципиальна бесплатность, то тот же notepad++ логичнее использовать - шире поддержка, нет явных глюков с регэкспами, поддержка скриптов и плагинов и самое главное - проект живой, то есть имеет перспективы.

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



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

    Цитата:
    тот же notepad++

    Подробнее...

    Всего записей: 4536 | Зарегистр. 03-05-2006 | Отправлено: 23:45 15-09-2024 | Исправлено: AZJIO, 23:51 15-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