Аналог соответствия PHP preg в 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 answers
Вы ищете модуль re для python.
Взгляните на повторный поиск и повторный поиск.
И, как вы уже упоминали, вы пытаетесь проанализировать html, используя для этого html parsers
. В python доступно несколько опций, таких как lxml или BeautifulSoup.
Взгляните на это Почему вы не должны анализировать html с помощью регулярных выражений
Возможно, вам будет интересно прочитать о Операциях регулярных выражений Python
Я думаю, тебе нужно что-то вроде этого:
output = re.search('a class="title"(.*?)<\/a>', input, flags=re.IGNORECASE)
if output is not None:
output = output.group(0)
print(output)
Вы можете добавить (?ы) в начале регулярного выражения, чтобы включить многострочный режим:
output = re.search('(?s)a class="title"(.*?)<\/a>', input, flags=re.IGNORECASE)
if output is not None:
output = output.group(0)
print(output)