я хочу найти определенную часть данных из строки, используя регулярное выражение python, и исключить определенную часть

#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)
 

Демонстрация регулярных выражений