Напомню ранее. Был текст для обработки
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
... и т.д
Задача:
Поиск по совпадению и разметка найденных строк. В качестве совпадений слова "ШАБЛОН" и "template"
Cuprum wrote:Eskander88
Вообще то это вопрос для
спец. темы.
Используйте скрипт SearchReplace.js, он есть в поставке Акелпада.
Настройки поиска:
Что:
(^.+$)
Чем:
if(/(ШАБЛОН)|(template)/.test($1)) return $1;
[x] Регулярные выражения
[x] Многострочно
[x] Заменять на функцию
Направление
[.] C начала
Нажимайте [Заменить все]
В итоге, в файле останутся только те строки, в которых есть слово ШАБЛОН или template.
Спасибо за подсказку
Cuprum. Потратил некоторое время на опыты и немного разобрался с синтаксисом. Ещё остаётся массу пробелов. Я так понял для функций используется синтаксис JavaScript?!
А что означает метод
.test ?
И кто знает, что подразумевается под функцией "многострочно" - без неё SearchReplace ведёт себя непонятно?
$1,
$2,
$3, .. - Это возращаемая строка по совпадению, в виде переменно. Берётся из скобок. Нумеруется слева направо.
Переделал под свои нужды, примерно так:
Что: (^.*WordPress.*$)|(^.+$)
Чем: if(/(SKIN)/.test($1)) return "Здесь совпадение из 1ой скобки: " + $1;if(/(ШАБЛОН)|(template)/.test($2)) return "Здесь совпадение из 2ой скобки: "+ $2;
Вводный текст:
Code: Select all
...
D:\SRC\Joom\sql\uninstall.mysql.utf8.sql
D:\SRC\Joom\CSS\ШАБЛОН\main\style.css
D:\SRC\WordPress\sql\uninstall.mysql.utf8.sql
D:\SRC\WordPress\SKIN\administrator\components\com_banners\tables\banner.php
...
Возвращаемый тест:
Code: Select all
Здесь совпадение из 2ой скобки: D:\SRC\Joom\CSS\ШАБЛОН\main\style.css
Здесь совпадение из 1ой скобки: D:\SRC\WordPress\SKIN\administrator\components\com_banners\tables\banner.php
Заметил особенность, что в некоторых случаях получается выражение
(^.*WordPress.*$) работает (или
(.*WordPress.*$)),
а если уже
(WordPress.*$) то не находит в "Вводном текст"е.
Почему так? Не знаю.
Тоже самое удалось записать другой функцией (где-то из материалов форума).
За некоторым исключением: если строка не соответствует регулярному выражению - она остаётся.
Что:
(WordPress.*$)|(^.+$)
Чем: $0.replace(/^.*SKIN.*$/, "Здесь совпадение из 1ой скобки: " + $1).replace(/^.*(ШАБЛОН)|(template).*$/, "Здесь совпадение из 2ой скобки: " + $2)