Menu

Регулярные выражения для notepad++



Пришлось немного править базу SQL от опечаток и я вооружился Notepad++
Вообще я только им пользуюсь, потому как там много всяких фичей. Но регулярки я в нем не очень использовал ибо всегда работал ими в TextKit. Впрочем там еще замороченей, просто я уже там знаю, как и что.

Для примера мне надо было убрать в title буквы ТЛ и Ё
У меня были вот такие названия : "Тлроса в серебреё" или "Тлхождение по мукамё". Как попали в базу такие уродства не помню, но надо исправлять! Этих записей около 70 штук, и руками править не вариант.

Рассмотрим способ быстро очистить наш документ от этого *овна. Для этого открываем страницу в notepad++ и вызываем через Ctrl+F замену. Перейдем на вкладку «заменить» и выберем внизу «регулярные выражения». В поле «Найти» скопируем строку

Тл([^'"]*)ё


В поле «Заменить на» скопируйте следующее:

\1

регулярные выражения в notepad++

Теперь глянем на синтаксис регулярных выражений. Наша задача – изменить все названия в которых есть Тл и Ё. всех ссылок для преобразования. Мы знаем, что искомое выражение, которое должно остаться, заключено в буквами Тл и ё.
Круглые скобки означают группу символов, то что будет найдено по шаблону который описан внутри скобок мы можем использовать в шаблоне замены (\1 – это и есть эта извлечённая по шаблону подстрока; групп может быть сколько угодно и их нумерация начинается с единицы).

В квадратных скобках находится набор символов, которые нужно искать, однако в нашем случае нам нужно искать до первой кавычки, и мы можем не перечислять все символы кроме кавычек, а использовать знак исключения ^. [^'"] – означает, что нам подходит любой символ, кроме ' и ".
Звёздочка за скобками означает, что предыдущий набор может повторяться сколько угодно раз (то есть, он включит в себя все символы, до первой кавычки).
Точка за круглыми скобками означает любой символ, это будет кавычка. Обратите внимание, точка находится ЗА скобками и кавычка не войдёт в группу символов \1.
В итоге, после нажатия кнопки «Заменить все» все тайтлы вида: "Тлроса в серебреё" или "Тлхождение по мукамё" Превратятся в нормальные человекочитаемые названия: "роса в серебре" или "хождение по мукам"

Что нужно обязательно знать из синтаксиса регулярных выражений:
. – Точка представляет один любой символ
[abc] – перечень символов. Совпадёт с буквами a, b, или с
[^abc] – перечень символов, которые не входят в диапазон. Совпадёт с любым символом, кроме a, b, или с
* - «Повторитель». Означает, что предшествующий символ может повторяться (0 или более раз)
[abc]* - найдёт идущие подряд символы из набора. Например, abracadabra
[^abc]* - с точностью до наоборот. abracadabrrra
.* - Абсолютно любой набор символов.
".*" – найдёт все подстроки между кавычками
^ - начало строки (если исп. В начале выражения)
$ - конец строки
w – буква, цифра или подчёркивание _
d – Любая цифра
D – Любой символ, но не цифра
[0-9] – Любая цифра
[a-z] – Любая буква от a до z (весь латинский набор символов) в нижнем регистре
[A-Z] – Любая буква от a до z в ВЕРХНЕМ регистре
[a-zA-Z] – Любая буква от a до z в любом регистре
[a-Z] - То же самое

Добавить комментарий

ЧТО ВЫ ОБ ЭТОМ ДУМАЕТЕ? НАМ ВАЖНО ВАШЕ МНЕНИЕ!


787821