Продвижение

Продающий сайт

партнерские программы

Поиск и замена разых подстрок: регулярные выражения в Kate и Notepad++

При поиске и замене подстроки бывает необходимо заменить разный текст, например заменить названия пронумерованных файлов.
Вот пример поискового запроса:
[=].*[\[]
Разберем его подробно.
[=] - это подстрока, с которой всегда начинается заменяемый кусок текста, может выглядеть так [foo]
.* - кусок случайного текста, встречаемый между подстрокой начала и подстрокой конца искомого фрагмента.
В моём случае подстрока конца фрагмента содержала символ "[", который пришлось экранировать так \[, следовательно получилось:
[\[] - подстрока конца заменяемого фрагмента текста

данный пример заменит все вхождения типа:
=что_угодно_любой_длинны[
ну а в поле замены вписываем то, что нужно подставить.

в результате, при использовании такой строки замены =$id[

такие вхождения:
$r[]=Anton,085730['id'];
$r[]=Ivan,085730['id'];
$r[]=Egor,085730['id'];
$r[]=super,085730['id'];

превратились в такие:
$r[]=$id['id'];
$r[]=$id['id'];
$r[]=$id['id'];
$r[]=$id['id'];
Если нужно оставить неизменным динамический элемент в подстроке, то используются круглые скобки для его выделения:
строка поиска - [=].*,(.*)[\[]
строка замены - =$id[\1][
превратят такой текст:
$r[]=$Anton,085730['id'];
$r[]=$Ivan,085730['id'];
$r[]=$Egor,085730['id'];
$r[]=$super,085730['id'];
в такой:
$r[]=$id[Anton]['id'];
$r[]=$id[Ivan]['id'];
$r[]=$id[Egor]['id'];
$r[]=$id[super]['id'];

уточняем поисковый запрос:
[\]=](.*),.*[\[] со строкой замены ]=$id[\1][ сделает тоже самое, только исходная строка начинается с ]=

Комментарии

Поиск и замена разых подстрок: регулярные выражения в Kate и Not

В последний в notepad++ раз не сработало, пришлось заменить все квадратные скобки на круглые, заменилось всё как надо... Видимо пунктуация запроса на замену подстроки по паттерну может меняться от версии к версии.

Выбор - личное дело каждого

Подписка

RSS-материал


Яндекс.Метрика