Шаблон .
соответствует любому символу, кроме символа разрыва строки.Таким образом, он может совпадать с [
, ]
, (
и )
, пока не найдет действительное совпадение.Поскольку регулярное выражение анализирует строку слева направо, механизм регулярных выражений находит первое [
, а затем находит ]
после Interview
, затем находит (
до /blog
, но отказывается от него, поскольку за ним не следуетhttps
, но все еще продолжает сопоставлять символы, пока не найдет (https
и, следовательно, не вернет действительное совпадение.
Вы можете использовать
r'\[([^][]*)]\((https[^()]*)\)'
См. Демонстрационную версию regex
Шаблон [^][]*
соответствует 0+ символам, отличным от [
и ]
и [^()]*
, соответствует 0+ символам, отличным от (
и )
.