Python正则表达式匹配多次

2024-04-19 11:37:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我想匹配一个字符特定的次数。 例如,我想在一个HTML字符串中匹配一个作者的名字,如下所示:

base>"author's name"</span>

下面的正则表达式匹配“base>;”和“/span>;”之间的任何字符,并且只返回作者的姓名:

base>\s*(.*?)(?=\s*<\/span>)

但是,HTML文件包含50个实例,上面的regex返回所有50个匹配项。如何修改它,以便只返回匹配的前10个实例?你知道吗


Tags: 文件实例字符串namegtbasehtml作者
1条回答
网友
1楼 · 发布于 2024-04-19 11:37:25

通过在由.*?分隔的正则表达式之后连接它,可以创建一个正则表达式来捕获该正则表达式的前十个实例。然后可以使用前十个捕获组来提取作者:

base>\s*(.*?)(?=\s*<\/span>).*?base>\s*(.*?)(?=\s*<\/span>).*?base>\s*(.*?)(?=\s*<\/span>).*?base>\s*(.*?)(?=\s*<\/span>).*?base>\s*(.*?)(?=\s*<\/span>).*?base>\s*(.*?)(?=\s*<\/span>).*?base>\s*(.*?)(?=\s*<\/span>).*?base>\s*(.*?)(?=\s*<\/span>).*?base>\s*(.*?)(?=\s*<\/span>).*?base>\s*(.*?)(?=\s*<\/span>)

然而,这不是你通常想要做的,因为它使得改变你搜索的作者数量相对困难。找到所有捕获并只使用前几个捕获可能会占用更多的CPU资源,但会更容易响应不断变化的需求。你知道吗

相关问题 更多 >