#python #regex #findall
#python #регулярное выражение #найти все
Вопрос:
Как следует из названия, я хочу запустить код, подобный этому (top_url_list — это просто список URL-адресов, которые я просматриваю, чтобы найти экземпляры этих соглашений об именах файлов, которые я ищу с помощью regex:
name_files = []
for i in top_url_list:
result = re.findall("/([a-z] [0-9][0-9]W[a-z] )", str(urlopen(i).read()))
Где цель состоит в том, чтобы захватить все экземпляры, в которых выполняется проверка регулярного выражения, отсюда и функция ‘findall()». Проблема в том, что важно, чтобы я получал только отдельные / уникальные данные для каждого экземпляра. Возможно ли это?
Ответ №1:
re.findall()
выдает неперекрывающиеся соответствия шаблону в строке в виде списка строк. Вы можете преобразовать его в уникальные значения с помощью set()
. Примерный пример того, как set()
работает:
>>> my_list = [1, 5, 2, 5, 2, 7]
>>> set(my_list)
set([1, 2, 5, 7]) # Duplicate entries of 5 and 2 are removed