Меню
Категории
Регулярные выражения к Notepad++
19 мая, 2011 Система

Notepad++ имеет в своем составе полезный инструмент как поиск и замена с функцией регулярных выражений.

Я собрал немного информации на эту тему и решил объединить её для удобного поиска необходимых данных.

Задание 1.
Есть <div class=»a1″> ЗДЕСЬ РАЗНЫЙ КОД ИЛИ ТЕКТ</div>
Регулярное выражение: <div class=»a1″>.*</div>

Заданеи 2. Есть список ссылок, наша задача обрезать все ссылки после .ua и заменить ее, например на главную страницу — index.html

  • https://tryboi.com.ua/publ1.html
  • https://tryboi.com.ua/publ2.html
  • https://tryboi.com.ua/publ3.html

Нажимаем Ctrl+H в форму вводим выражение: \.ua.*$
заменить на :/index.html

Не забудьте установить галочку в опции (режим поиска) — регулярное выражение.

Задание 3. Есть страница с картинками, у них разные размеры. Задание привести их к одному виду.

  • <img width=»300″ height=»200″ src=»»
  • <img width=»350″ height=»210″ src=»»
  • <img width=»250″ height=»110″ src=»»

В результат должны получить: <img  width=»200″ height=»200″  src=»»

Регулярное выражение:

<img width=»(\d+)» height=»(\d+)» src=»»

Задание 4. Нужно быстро отредактировать без малого 300 строк, убрав из них лишнее. Притом, «основная масса» лишнего лежит между кавычками (tppabs=»https://www.foscon-buy.ru/href.htm»)

Выражение tppabs=».*» действительно работает. Но работает, мягко говоря, очень радикально. В качестве примера рассмотрим строчку из index.htm вышеуказанного сайта:

<a href=»href.htm» tppabs=»https://www.foscon-buy.ru/href.htm»><img border=»0″ src=»href.gif» tppabs=»https://www.foscon-buy.ru/href.gif» width=»126″ height=»41«></a>

Почему я выделил именно так? Потому что regexp tppabs=».*» дает право редактору выделить текст от собственно tppabs=» и прямо до самого последнего символа « (двойные кавычки) в строке. А то как-то я сразу и не сообразил, почему после выполнения глобальной замены с сайта исчезла добрая треть содержимого :).

Но, после непродолжительно гугления и курения мануалов было найдено (та-дааам) решение! И вот он — полностью рабочий regexp: tppabs=»[^»]*». Само собой, не забудьте пробельчик в начале :)

Давайте посмотрим, что именно хочет донести это выражение до редактора:

1. tppabs= — «Найди то, что начинается железно с этого…»;

2. » — «…захвати первые двойные кавычки…»;

3. [^»] — «…потом, пожалуйста, выдели все символы до следующих двойных кавычек…»;

4. « — «…и не забудь доесть те самые вторые двойные кавычки».

Да, regexp’ы — штука сложная, но нужная. Если знать их наизусть, да ещё и Perl подучить, то можно… можно уже, пожалуй, жениться :).

За информацию спасибо.

https://www.tryboi.com/regulyarnye-vyrazheniya-dlya-notepad/
https://rschweppes.posterous.com/11399912

5 комментариев
  1. Телевизор

    чот не чо не пашет версия 5.9.8

  2. Телевизор

    а все рабобрался спасибо

  3. [^»] — это все кроме кавычек
    .* — * неограниченное повторение предыдущего символа а точка перед звездой означает любой символ
    .*? — выделить минимально возможный набор
    вот здесь подробнее
    https://help.adobe.com/ru_RU/dreamweaver/cs/using/WSc78c5058ca073340dcda9110b1f693f21-7bf1a.html#WSc78c5058ca073340dcda9110b1f693f21-7beca

  4. Добрый день! Подскажите, пожалуйста, как из слов расписанных в строку и разделенных пробелом сформировать столбец?

  5. Реально. Правильно писать как описано выше, я вот скачал один сайтик, решил удалить лишние теги от телепорт, удалял регулярные выражения в нотепад++, удалял вот так
    tppabs=»(.+?)»
    ага, правда, половина кода улетело, устал потом восстанавливать.
    Вот как то так.

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




*