#regex #web-scraping #regular-language
Вопрос:
((http(s?):)./([a-z]).*/)
Это регулярное выражение-попробуйте
но в этой строке мне нужен такой каталог: /wp-контент/загрузки/2021/09/
И название изображения выглядит так : VideoHive-Happy-Kids-Slideshow-Premiere-Pro-MOGRT-Free-Download-GetintoPC.com_-300×169.jpg
Ответ №1:
Вы можете попробовать вот это:
https?://.*?(?<folder>/.*?/.*?/.*?/.*?/)(?<image>.*)
Я добавил две группы захвата по именам папки и изображения.
Ответ №2:
Вы можете использовать 2 группы захвата
https?://[^/]*(/wp-content/uploads/d{4}/d{2}/)([^/s] )
https?://[^/]*
Сопоставьте протокол с тем, что было до первого/
(
Группа захвата 1/wp-content/uploads/d{4}/d{2}/
Совпадение/wp-content/uploads/
4 цифр/
2 цифры/
)
Близкая группа 1([^/s] )
Захватите группу 2, сопоставьте 1 раз любой символ, кроме/
символа пробела или символа пробела
Демонстрация регулярных выражений
const s = `https://getintopc.com/wp-content/uploads/2021/09/VideoHive-Happy-Kids-Slideshow-Premiere-Pro-MOGRT-Free-Download-GetintoPC.com_-300x169.jpg https://getintopc.com/wp-content/uploads/2021/09/VideoHive-Happy-Kids-Slideshow-Premiere-Pro-MOGRT-Direct-Link-Free-Download-GetintoPC.com_-300x169.jpg https://getintopc.com/wp-content/uploads/2021/09/VideoHive-Happy-Kids-Slideshow-Premiere-Pro-MOGRT-Full-Offline-Installer-Free-Download-GetintoPC.com_-300x169.jpg https://getintopc.com/wp-content/uploads/2021/09/VideoHive-Happy-Kids-Slideshow-Premiere-Pro-MOGRT-Latest-Version-Free-Download-GetintoPC.com_-300x169.jpg`;
const regex = /https?://[^/]*(/wp-content/uploads/d{4}/d{2}/)([^/s] )/g;
const res = Array.from(s.matchAll(regex), m => [m[1], m[2]]);
console.log(res);
Или немного более широкая версия, сначала соответствующие папки, начинающиеся с [a-z]
, за которыми следуют папки, начинающиеся с цифры и заканчивающиеся последней частью, например .jpg
https?://[^/]*((?:/[a-z][^/]*) (?:/d ) /)([^/] .jpg)