与PHP在Python中preg_match相对应

2022-08-31 01:03:09

我打算将我的一个抓取工具移动到Python。我很乐意使用PHP。我没有在Python中找到类似于的合适函数。任何人都可以帮我这样做吗?preg_matchpreg_match_allpreg_match

例如,如果我想获取 和 之间的内容,我在 PHP 中使用以下函数:<a class="title"</a>

preg_match_all('/a class="title"(.*?)<\/a>/si',$input,$output);

而在Python中,我无法找出类似的函数。


答案 1

你正在寻找python的re模块

看看re.findallre.search

正如你所提到的,你正在尝试解析html使用。Python中有几个选项可用,如lxmlBeautifulSouphtml parsers

看看这个 为什么你不应该用正则表达式解析html


答案 2

我认为你需要这样的东西:

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)

推荐