/* Приклади на ресурсі regex101.com */
[Txt]
Посилання. Пошук пробілів різного гатунку (дивитись на ресурсі з модифікатором ~ig).
// Видалення прикладу з пошука пробілів дивись у тексті
Посилання. Пошук порожніх парних тегів HTML, за виключенням окремих тегів canvas, script, iframe
тощо.
// Видалення прикладу з пошука порожніх парних тегів дивись у тексті
/* Робочі приклади регулярних виразів */
[PHP]
$patterns = array();
$patterns[0] = '/<\/?(aside|blockquote|span|samp|em)[^>]*\>/i'; // Видаляємо парні теги, тексти лишаються
$patterns[1] = '/(<style>).*?(<\/style>)/uis'; // Видаляємо загальні стилі
$patterns[2] = '/(<script.*?[$>]).*?(<\/script>)/uis'; // Видаляємо скрипти
$patterns[3] = '/(<!--).*?(-->)/uis'; // Видаляємо коментарі
$patterns[4] = '/(<form.*?[$>]).*?(<\/form>)/uis'; // Видаляємо форми
$patterns[5] = '/(<button.*?[$>]).*?(<\/button>)/uis'; // Видаляємо кнопки (парний тег форми)
$patterns[6] = '/(<input.*?[$>])/uis'; // Видаляємо інпути (одинарний тег форми)
$patterns[7] = '/\s?class=["][^"]*"\s?/iu'; // Видаляємо вбудовані класи
$patterns[8] = '/\s?title=["][^"]*"\s?/iu'; // Видаляємо вбудовані тайтли
$patterns[9] = '/\s?style=["][^"]*"\s?/iu'; // Видаляємо вбудовані стилі
$patterns[10] = '/\s?id=["][^"]*"\s?/iu'; // Видаляємо вбудовані айді
$patterns[11] = '/<hr\b[^>]*>/i'; // Видаляємо роздільні лінії
$patterns[12] = '/<br\b[^>]*>/i'; // Видаляємо брейки
// Видаляємо нерозривні пробіли в одному паттерні
$patterns[13] = '~&(?:(?:nb|thin|zwnb|e[nm])sp|zwnj|#xfeff|#xa0|#160|#65279);~i';
// Видаляємо порожні теги крім canvas, script, iframe (але, запис: !iframe означатиме, що <iframe></iframe> буде видалений)
$patterns[14] = '~<((?!(canvas|script|iframe))\w+)[^>]*>(?>[\p{Z}\p{C}]|(?R))*<\/\1>~i';
// Видаляємо зайві пробіли (бажано вжити останнім кроком)
$patterns[15] = '/\s+/u';
$replacements = array();
$replacements[0] = ' ';
$replacements[1] = ' ';
$replacements[2] = ' ';
$replacements[3] = ' ';
$replacements[4] = ' ';
$replacements[5] = ' ';
$replacements[6] = ' ';
$replacements[7] = ' ';
$replacements[8] = ' ';
$replacements[9] = ' ';
$replacements[10] = ' ';
$replacements[11] = ' ';
$replacements[12] = ' ';
$replacements[13] = ' ';
$replacements[14] = ' ';
$replacements[15] = ' ';
$result = preg_replace($patterns, $replacements, $string); // Отримання результату
/* Hover zoom class для цього прикладу*/
[CSS]
.zoom {transition: all 0.4s linear; margin: 0 auto;}
.zoom:hover {transform: scale(1.8,1.8);}