Page 21 of 29
Posted: Sat Nov 07, 2015 10:24 am
by YuS
pol-zhuk wrote:прогуглил и даже немного разобрался в этих закорючках

"+" был один лишний
Плюс там не лишний, как раз, иначе регэксп добавит Вам нули туда, где они не должны вставляться.
pol-zhuk wrote:
понимаю, что можно вручную теперь менять " 000" на " 0", но есть ли более быстрый способ не реагировать на нуль в одну формулу?
Поточнее сформулируйте вопрос, а то не совсем понятно, что требуется.
pol-zhuk wrote:
и можно ли такую замену производить сразу в нескольких файлах?
Да, есть специальная опция в окне "Замена": "Направление->Все файлы"
Posted: Sat Nov 07, 2015 10:29 am
by Cuprum
del
Уже ответили

Posted: Sat Nov 07, 2015 1:30 pm
by pol-zhuk
YuS wrote:
Плюс там не лишний, как раз, иначе регэксп добавит Вам нули туда, где они не должны вставляться.
странно; выдавал мне синтаксическую ошибку до тех пор, пока не удалил один из плюсов
YuS wrote:
Поточнее сформулируйте вопрос, а то не совсем понятно, что требуется.
заметил, что он начал "0" обращать в "000", соответственно, описал, как я назад к нулю привел; ну ладно, раз правильную формулу у меня не получается использовать, то буду так
YuS wrote:
Да, есть специальная опция в окне "Замена": "Направление->Все файлы"
под "Все файлы" имеется ввиду все открытые в данный момент вкладки?
Posted: Sat Nov 07, 2015 2:41 pm
by YuS
pol-zhuk wrote:
странно; выдавал мне синтаксическую ошибку до тех пор, пока не удалил один из плюсов
А версия AP у Вас какая используется? Не должно быть ошибки, если версия актуальная.
pol-zhuk wrote:
заметил, что он начал "0" обращать в "000", соответственно, описал, как я назад к нулю привел;
А, вот Вы о чем... тогда так:
Code: Select all
Что: ((?:\(|s )[1-9]\d*+)(?!d|s)
Чем: \1\x300
pol-zhuk wrote:
под "Все файлы" имеется ввиду все открытые в данный момент вкладки?
Да, естественно. ИИ у AP не настолько развит, чтобы самостоятельно определять в какие файлы необходимо вносить изменения.

Регулярные выражения для AkelPad в примерах
Posted: Thu Nov 26, 2015 8:09 pm
by Eskander88
Ув. Форумчане!
«Лучше один раз увидеть, чем сто раз в мануал глянуть.»
Просим всех кто не безразличен к работе регулярных выражений в
AkelPad писать здесь свои примеры.
Данные примеры помогут лучше освоить данный функционал программы.
Делимся опытом.
Posted: Thu Nov 26, 2015 8:24 pm
by Eskander88
Дано:
Текстовой файл с набором одиночных тегов:
Code: Select all
Статьи <site.com/articles.htm>
Новости <site.com/news.htm>
Контакты <site.com/contacts.htm>
Задача:
Найти и заменить теги. Я буду просто использовать "поиск и замену" (Ctrl + H) для того, чтобы удалить все теги, т.е. заменять на пустую строку
1) Пишем в поле "Что ищем", говорим тем самым, что нужно найти одну левую скобу.
в фигурных скобках после символа указано, количество повторения символа.
2) Сообщаем, что нужно найти две скобки: одну левую, и одну правую.
это регулярное выражение удалит "
<>", но пропустит строки вроде "
<img>"
3) Сообщаем что нужно удалить набор символов, которые содержат в начале одну левую скобку, далее любое количество или ноль символов до символа, которым собственно является правая скобка.
Вот такая комбинация команд для
регулярки
Posted: Fri Nov 27, 2015 12:32 pm
by YuS
Eskander88 wrote:
Вот такая комбинация команд для
регулярки
1. Зачем изобретать велосипед? Есть масса литературы по регуляркам, лучше изучать их по книжкам.
2. Прежде чем публиковать примеры, проверяйте их. В частности, процитированное выше будет у Вас работать совсем не так, как Вы описали... он просто удалит всё, находящееся в тексте между первым символом "<" и последним символом">".
Posted: Sat Nov 28, 2015 6:51 pm
by m_s_b
YuS wrote:Eskander88 wrote:
1. Зачем изобретать велосипед? Есть масса литературы по регуляркам, лучше изучать их по книжкам..
Вы безусловно правы Но для того чтобы проехать от пункта А до Б, необязательно покупать машину и получать водительские права, а достаточно воспользоваться общественным транспортом, либо попросить друга, имеющего права и машину. Чтобы начать использовать на практике регулярные выражения достаточно посмотреть на 2 -3 примера.
YuS wrote:Eskander88 wrote:
2. Прежде чем публиковать примеры, проверяйте их. В частности, процитированное выше будет у Вас работать совсем не так, как Вы описали... он просто удалит всё, находящееся в тексте между первым символом "<" и последним символом">".
Вы правы.
Правильный код -
для новой редакции AkelPad.
Posted: Sat Nov 28, 2015 7:45 pm
by Cuprum
m_s_b
Чтобы начать использовать на практике регулярные выражения достаточно посмотреть на 2 -3 примера.
Чтобы применять регулярки на практике надо знать синтаксис и механизм работы регулярных выражений.
YuS как гуру регэкспов подтвердит

Posted: Sun Nov 29, 2015 10:43 am
by YuS
Cuprum wrote:
Чтобы применять регулярки на практике надо знать синтаксис и механизм работы регулярных выражений.
YuS как гуру регэкспов подтвердит

Ну, гуру - это слишком сильно сказано, до гуру надо ещё расти

А по сути да, всё верно. Так просто они не дадутся, по двум-трем примерам...
Да и вообще, по примерам почти невозможно будет изучить и понять, что же обозначают все эти черточки, скобочки, слеши, точки, звездочки и прочее... для столкнувшегося с ними впервые, это будет просто китайская грамота.
А вот тем кто возьмется изучать, помощь на примерах потребуется в любом случае, но для этого есть уже тема, там вполне можно и вопрос задать, и помощь получить.
Posted: Sun Nov 29, 2015 10:47 am
by YuS
m_s_b wrote:
Правильный код -
для новой редакции AkelPad.
Применение {1} -избыточно, достаточно наличия самого символа:
Posted: Wed Dec 02, 2015 4:18 pm
by Eskander88
YuS wrote:Eskander88 wrote:
Вот такая комбинация команд для
регулярки
1. Зачем изобретать велосипед? Есть масса литературы по регуляркам, лучше изучать их по книжкам.
2. Прежде чем публиковать примеры, проверяйте их. В частности, процитированное выше будет у Вас работать совсем не так, как Вы описали... он просто удалит всё, находящееся в тексте между первым символом "<" и последним символом">".
В общем-то всё работает. У меня просто сборка старенькая. Пример был проверен. А зачем нужен символ "восклицательного знака" не знаю, если есть причины то подскажите. Старался поэтапно разжёвывать, чтобы даже новичок вникал.

Дело не в велосипеде! Надо ж как-то рулить..
AkelPad использую как программу для преформатирования текста и т.п. Предлагаю ещё одну задачу, т.е. хочу спросить - "ну раз часто на вопрос как пользоваться RegExp рекомендуют прочитать массу литературы". Собственно, наверное кто-то и читал (о чём конечно ему можно позавидовать).
Вот такая у меня задача:
Есть список путей к файлам на жёстком диске.
Каждый путь к файлу расположен на отдельной строке.
Общее количество 118780 файлов, т.е. 1118780 строк в файле соответственно.
Нужно заменить все строки, где нет слова "шаблон" или "template" на пустую строку.
Что по сути приведёт к удалению из списка путей, в название которых, не входит одно из указанных слов.
Список такого вида:
Code: Select all
...
D:\SRC\Joom\Joomla_2.5.18-Stable-Full_Package_ru\administrator\components\com_banners\models\forms\download.xml
D:\SRC\Joom\Joomla_2.5.18-Stable-Full_Package_ru\administrator\components\com_banners\models\forms\index.html
D:\SRC\Joom\Joomla_2.5.18-Stable-Full_Package_ru\administrator\components\com_banners\sql\index.html
D:\SRC\Joom\Joomla_2.5.18-Stable-Full_Package_ru\administrator\components\com_banners\sql\install.mysql.utf8.sql
D:\SRC\Joom\Joomla_2.5.18-Stable-Full_Package_ru\administrator\components\com_banners\sql\uninstall.mysql.utf8.sql
D:\SRC\Joom\Joomla_2.5.18-Stable-Full_Package_ru(EDITION)\CSS\ШАБЛОН\main\style.css
D:\SRC\Joom\Joomla_2.5.18-Stable-Full_Package_ru\administrator\components\com_banners\tables\banner.php
D:\SRC\Joom\Joomla_2.5.18-Stable-Full_Package_ru\administrator\components\com_banners\tables\client.php
... и т.д
К примеру указывайте массу литературы в килограммах.

Томик Ленина, особо отличившимся как в сов. время за старания, не обещаю, - «кому он в общем-то нужен... »
Ну а рабочий пример, ляжет бесценным грузом в памяти и трудах сообщества.
Posted: Wed Dec 02, 2015 6:13 pm
by Cuprum
Eskander88
Вообще то это вопрос для
спец. темы.
Используйте скрипт SearchReplace.js, он есть в поставке Акелпада.
Настройки поиска:
Что:
(^.+$)
Чем:
if(/(ШАБЛОН)|(template)/.test($1)) return $1;
[x] Регулярные выражения
[x] Многострочно
[x] Заменять на функцию
Направление
[.] C начала
Нажимайте [Заменить все]
В итоге, в файле останутся только те строки, в которых есть слово ШАБЛОН или template.
Posted: Wed Dec 02, 2015 6:54 pm
by Eskander88
Cuprum wrote:Eskander88
Используйте скрипт SearchReplace.js, он есть в поставке Акелпада.
Как вариант тоже сойдёт. Спасибо.
Только хотелось бы в "Регулярных выражениях".
«.. соберешь сборник томов на одну тему, - а выходит, - что уже пора и другую изучать»
Posted: Thu Dec 03, 2015 12:02 am
by opk44
Eskander88, Cuprum
Можно даже и без функции обойтись.
Есть же ещё "стандартный" скрипт LinesFilter.js (фильтр строк с регулярными выражениями)
Настройки:
Строка содержит: template|ШАБЛОН
[x] Регулярные выражения
[*] Оставить строки