Почему объект соответствия регулярному выражению не соответствует большим строкам? - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь получить все ссылки href из документа HTML через регулярное выражение, код работает нормально для большинства ссылок, но он не может получить ссылки большего размера (строки). Я не знаю почему, я прочитал документацию, но не смог найти ничего связанного. Ниже приведен небольшой демонстрационный код для демонстрации проблемы:


regex = re.compile(r'(?<=href=)(").*(")')


strings_list = [r'<link href="plugins/font-awesome-4.7.0/css/font-awesome.min.css">',
r'<link rel="stylesheet" type="text/css" href="styles/bootstrap4/bootstrap.min.css">',
r'<link rel="stylesheet" type="text/css" href="plugins/OwlCarousel2-2.2.1/owl.carousel.css">']

for line in strings_list:
    mo = re.search(regex, line)
    print(mo)

Выходное изображение

Обратите внимание, что первая строка в списке не полностью захвачена.

1 Ответ

0 голосов
/ 21 апреля 2020

Он полностью захвачен, он просто не печатает его полностью в объекте сопоставления

Попробуйте "re.search (regex, line) .group ()":

import re

regex = re.compile(r'(?<=href=)(").*(")')


strings_list = [r'<link href="plugins/font-awesome-4.7.0/css/font-awesome.min.css">',
r'<link rel="stylesheet" type="text/css" href="styles/bootstrap4/bootstrap.min.css">',
r'<link rel="stylesheet" type="text/css" href="plugins/OwlCarousel2-2.2.1/owl.carousel.css">']

for line in strings_list:
    mo = re.search(regex, line)
    print(mo)
    print(mo.group())

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...