Совместимость PHP с preg_match в 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 я не могу найти подобную функцию.
Ответы
Ответ 1
Вы ищете python re module.
Взгляните на re.findall и re.search.
И как вы уже упоминали, вы пытаетесь разобрать html для использования html parsers
. В python есть пара опций, например lxml или BeautifulSoup.
Взгляните на это Почему вы не должны анализировать html с регулярным выражением
Ответ 2
Вам может быть интересно прочитать о Операции регулярного выражения Python
Ответ 3
Думаю, вам нужно что-то вроде этого:
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)