Вопрос по регулярным выражениям Python
Почему при такой регулярке:
r'<a href="(.*)">'
он вытаскивает:
https://stepic.org/media/attachments/lesson/24472/sample1.html
А не <a href=https://stepic.org/media/attachments/lesson/24472/sample1.html">? С данным вопросом столкнулся в задаче https://stepik.org/lesson/24471/step/6?thread=solutions&unit=6780. Я использовал такое регулярное: r'http.*html', но среди решений нашел то, что указал выше. Не понял, почему оно работает именно так:)
Ответы (1 шт):
Автор решения: Victor VosMottor
→ Ссылка
Вы можете найти подстроку(-и):
import re
print(*re.findall(regex, text))
Можете найти соответствующую строку (или соответствует ли строка):
import re
out = re.search(regex, text)
if out:
print(out.group(0))
По-моему все просто ;)
Как это работает с вашим примером
text = '<a href="https://stepic.org/media/attachments/lesson/24472/sample1.html">'
regex = r'<a href="(.*)">'
in:
import re
print(*re.findall(regex, text))
stdout:
https://stepic.org/media/attachments/lesson/24472/sample1.html
in:
import re
out = re.search(regex, text)
if out:
print(out.group(0))
stdout:
<a href="https://stepic.org/media/attachments/lesson/24472/sample1.html">