Регулярные выражения (regex), которые будут вам полезны. 2-я часть

Продолжаем разбирать тему регулярных выражений. Для начала рекомендуем ознакомиться с предыдущей статьей.

1. Соберем ссылку на Youtube видео. Обычно участок с видео в коде выглядит так:

<iframe src="https://www.youtube.com/embed/ХХХХХХХХХХХ" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe>

ХХХХХХХХХХХ — это код видео. Для того, чтобы его собрать, используем регулярку:

<iframe[^<>]*?src=['"]([^<>]*?)['"]

В итоге мы получаем ссылку на наше видео: https://www.youtube.com/embed/ХХХХХХХХХХХ

Если на странице присутствует несколько тегов iframe, то используйте следующее выражение:

<iframe[^<>]*?src=['"]([^<>]*?youtu[^<>]*?)['"]

2. Универсальный метод получения изображения. На многих сайтах применяют метатег og:image для изображения, которое будет отображаться в соцсети при добавлении ссылки на страницу. Этот метатег выглядит следующим образом:

<meta property="og:image" content="http://site.ru/image.jpg"/>

Чтобы собрать изображение используем выражение:

<meta[^<>]*?og:image['"][^<>]*?content=['"]([^<>]*?)['"]

В итоге мы получим: http://site.ru/image.jpg

3. Соберем ссылку на товар для последующей загрузки в интернет-магазин. Часто необходимо собрать часть ссылки на товар без домена и названий категорий. Например, полная ссылка: «http://site.ru/shop/category/tovar-001«, а нам необходимо получить только «tovar-001«. В этом случае устанавливаем в Datacol «Тип поля» — «Спец. поле«. Потом установим во вкладке «Спец значения» — «URL«.

URL

Добавим замену:

.*?/ - > пусто

Добавим замену

Если в конце ссылки присутствует слеш «/» — делаем две замены:

/$ -> пусто
.*?/ - > пусто

Добавим 2 замены

4. Уберем ненужные стили и классы в тегах, которые появляются при сохранении описания. Используйте следующие замены для их удаления:

<([a-z\d]{1,6})\ [^<>]*?> -> <$1>

Этот метод является универсальным, но он может удалить нужные теги. Если нужно удалить какой-то конкретный тег, тогда используйте такую замену:

<div[^<>]*?> -> <div>

Материал для статьи предоставлен сайтом bestweb4u.net, на котором можно найти много интересных материалов по тонкостям настройки Datacol.