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

Готовые регулярные выражения PHP #1. Поиск, замена, удаление тегов и текста

Регулярные выражения (их еще называют regexp, или regex) — это формальный язык, который используют программисты в своих программах, для поиска и осуществления манипуляций с подстроками в тексте.

Простыми словами — это язык поиска подстроки или подстрок в тексте.

Регулярные выражения основаны на использовании метасимволов. 

Для поиска используется строка-образец, которая задаёт правило поиска (её очень часто называют «шаблоном» или «маской»). Эта строка состоит из символов и метасимволов.

Для манипуляций с текстом (например, для поиска и замены) дополнительно задаётся строка замены, которая также может содержать в себе специальные символы.

Примеры регулярных выражений PHP

Удалить содержимое тега <a>

$str = preg_replace('#(<a.*?>).*?(</a>)#', '$1$2', $str)

Удалить картинки <img>

$str = preg_replace('~(<a\b[^>]*>)?<img[^>]*>(</a>)?~i', '', $str);

Удалить ссылки с определённым класом <class>

$str = preg_replace('/<a.*class=("|\').*тут_пишем_класс("|\').*>.*<\/a>/Ui', '', $str);

Удалить тег <div> и его содержимое

$str = preg_replace('/<div[^>]*?>[\s\S]*?<\/div>/i', '', $str);

Удалить все пустые теги <p>

$str = preg_replace('/<p[^>]*>(\s{0,}(<[a-z]*[^>]*>){0,}\s{0,}){0,}<\\/p>/', '', $str);

Удалить <noindex> и <nofollow>

$str = preg_replace('<noindex>.*?<\/noindex>|<a[^>]+rel=\s*["'][^>]*nofollow["'][^>]*>.*?<\/a>', '', $str) 

Main Menu