Объясните пожалуйста, как работает данная строка в программе?

Рейтинг: 0Ответов: 1Опубликовано: 10.07.2023

Встретился с данной программой на просторах интернета, как в ней работает 9-ая строка? (a = re.findall(r'Природные ресурсы(.*?)Почвы', article,re.DOTALL)). Если быть точнее, то что обозначают и как работают знаки и круглые скобки в ней?

import requests  
from bs4 import BeautifulSoup  
import re  
  
url = 'https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%B7%D0%B0%D1%85%D1%81%D1%82%D0%B0%D0%BD'  
r = requests.get(url)  
soup = BeautifulSoup(r.text, 'html.parser')  
article = soup.text  
a = re.findall(r'Природные ресурсы(.*?)Почвы', article,re.DOTALL)  
for i in a:  
    print(i)

Ответы

▲ 0

Знаки в скобках (.?) обозначают группу захвата. Группы захвата позволяют извлекать определенные подстроки из общего совпадения. В данном случае, знаки (.?) указывают, что мы хотим извлечь любое количество любых символов между подстроками "Природные ресурсы" и "Почвы".