re.findall(), где я хочу все уникальные экземпляры регулярного выражения на странице

#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