Удалить URL из списка, который содержит определенную подстроку в Python - PullRequest
0 голосов
/ 03 июня 2018

Я хотел бы удалить URL-адреса, которые не соответствуют определенному ключевому слову из данного списка.Это означает, что я хотел бы удалить все URL, которые содержат «продажу» или «новый» в моем случае.

Тестовые данные

url_list = ['https://www.test.com/men-fashion/', 'https://www.test.com/men-shirts', 'https://www.test.com/sale-fashion/', 'https://www.test.com/new-fashion/']

Мои подстрокиследующие:

to_remove = ['sale','new']

Я пытался сделать это, используя комбинирование списков с использованием any (), но это отфильтровывает все URL, соответствующие моему списку "to_remove".ожидание является противоположным результатом.

url_list[:] = [url for url in url_list if any(substring in url for substring in to_remove)]
print(url_list)

1 Ответ

0 голосов
/ 03 июня 2018

Один подход с использованием регулярного выражения:

import re
url_list = ['https://www.test.com/men-fashion/', 'https://www.test.com/men-shirts', 'https://www.test.com/sale-fashion/', 'https://www.test.com/new-fashion/']
to_remove = ['sale','new']

result = [i for i in url_list if not re.search("|".join(to_remove), i)]
print(result)

Вывод:

['https://www.test.com/men-fashion/', 'https://www.test.com/men-shirts']
...