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

  • Автор темы Автор темы Arioh
  • Дата начала Дата начала

Arioh

Создатель (I)
Сообщения
7
Реакции
9
Баллы
134
1. Удалить все html-теги, оставить только текст:
Код:
[<].*?>

2. В списке ссылок вида <a href=»LINK»>TITLE</a> удалить все html-теги, оставить только ссылки:
Код:
^[^"]+.([^"]+).*
заменить на:
Код:
$1

3. В том же самом списке оставить только тайтлы:
Код:
</?[^>]*.

4. Удалить строки с заданным количеством вхождения определенного символа. (Мне это понадобилось, когда нужно было очистить большой список ссылок на товары — 45 тыс. позиций — от ссылок на категории. Друг от друга они отличались общим количеством слешей — в категориях было 5, а в товарах — 6)
Код:
^([^/]*/){5}[^/]*$

разъяснение:
^ начало строки
( начало группы
[^/]* любой символ кроме слеша, 0 или более раз
/ слеш
){5} закончить и повторить группу 5 раз
[^/]* любой символ кроме слеша, 0 или более раз
$ конец строки

5. Удалить весь текст между двумя определенными символами (в данном примере — между двух кавычек):
Код:
"([^"]*)"

6. Удалить все html-теги с определенным атрибутом. Например, мы хотим удалить все теги (и содержимое тегов), у которых совпадает класс, или инлайн-стили
<td class="nowrap">([^<]*)</td> - то есть задаем искомую строку, внутри которой может быть произвольный текст. Текст оформляем как ([^<]*) - любые символы,
кроме символа открытия (или закрытия) тега.

7. Удалить все теги, внутри которых содержатся только числа:
Код:
<td>(\d+)</td>

8. Удалить заданное количество символов от начала строки (данный пример удаляет первые 9 символов):
Код:
^.{0,9}

В данном примере выражение \d+ означает любую цифры от 0 до 9 любое количество раз

Аналогично можно использовать следующие наборы выражений:

. — Один произвольный символ
^ — Начало строки
$ — Конец строки
\s — Пробел
\S — Не Пробел
\w — Буква, цифра или символ подчёркивания _
\d — Любая цифра
\D — Любой символ кроме цифр
[0-9] — Любая цифра
[a-z] — Любая буква от a до z (весь латинский набор символов) в нижнем регистре
[A-Z] — Любая буква от a до z в ВЕРХНЕМ регистре
[a-zA-Z] — Любая буква от a до z в произвольном регистре
[a-Z] — Любая буква от a до z в произвольном регистре
* — Повторение. Означает, что предшествующий символ может повторяться (0 или более раз)
.* — Любой набор символов. Например, условие <p> .*</p> — найдет все что между тегами <p> </p>
(^.*$) — Любой текст между началом и концом строки
([0-9][0-9]*.) — Любое двухзначное число
\n\r — Пустая строка
^\s*$ — Пустая строка с пробелом
^[ ]*$ — Ищет пустые строки содержащие пробел.
 
Для тех, кому интересна тема очень неплохой сервис для тестирования регулярных выражений.
Позволяет использовать для разных языков программирования, в том числе и для PHP.
Удобно использовать, т.к. сразу наглядно видно, что будет выбрано из искомой строки с помощью регулярки.
 
Не подскажете, как заменить каждый третий пробел в строке на /
 
Bash:
IP bt.ru.https > 192.168.88.10.54276: tcp 3374
IP 192.168.88.10.54276 > 192.168.88.18.https: tcp 0
IP 192.168.88.10.54276 > 192.168.88.18.https: tcp 0
IP 192.168.88.10.54276 > 192.168.88.18.https: tcp 0
IP somedomain.ru.https > 192.168.88.10.54276: tcp 334
IP 192.168.88.10.54276 > 192.168.88.18.https: tcp 0
IP 192.168.88.10.54276 > 192.168.88.18.https: tcp 0
IP 192.168.88.10.54276 > 192.168.88.18.https: tcp 0
IP www.somedomain.ru.https > 192.168.88.10.54276: tcp 228

Подскажите пожалуйста, как с помощью регулярки найти строки имеющие доменные имена?
 
для парсинга укр/ру номеров телефонов в самых разных форматах (иногда, может захватить не номер, на больших объемах погрешность низкая)
Код:
/(?<!\w)(?:(?:(?:(?:\+?3)?8\W{0,5})?0\W{0,5})?[34569]\s?\d[^\w,;(\+]{0,5})?\d\W{0,5}\d\W{0,5}\d\W{0,5}\d\W{0,5}\d\W{0,5}\d\W{0,5}\d(?!(\W?\d))/x
 
Назад
Верх