Аналог прег-матча PHP в Python
Я планирую переместить один из моих скребков на Python. Мне удобно использовать preg_match
и preg_match_all
в PHP. Я не нахожу подходящую функцию в Python, похожую на preg_match
. Кто-нибудь может мне в этом помочь?
например, если я хочу получить содержимое между <a class="title"
и </a>
, я использую следующую функцию в PHP:
preg_match_all('/a class="title"(.*?)</a>/si',$input,$output);
тогда как в Python я не могу понять аналогичную функцию.
3 ответов
вы ищете python в модуль re.
посмотри re.метод findAll и re.поиск.
и, как вы упомянули, вы пытаетесь проанализировать использование html html parsers
для этого. Есть несколько вариантов, доступных в python, как библиотека lxml или BeautifulSoup.
взгляните на это почему вы не должны анализировать html с помощью regex
вам может быть интересно прочитать о Операции Регулярного Выражения Python
Я думаю, тебе нужно что-то вроде этого:
output = re.search('a class="title"(.*?)<\/a>', input, flags=re.IGNORECASE)
if output is not None:
output = output.group(0)
print(output)
можно добавить (?s) в начале регулярного выражения для включения многострочного режима:
output = re.search('(?s)a class="title"(.*?)<\/a>', input, flags=re.IGNORECASE)
if output is not None:
output = output.group(0)
print(output)