繁体   English   中英

Python正则表达式-匹配多次

[英]Python regex - match a number of times

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

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

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

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

但是,HTML文件包含此内容的50个实例,上面的regex返回所有50个匹配项。 我将如何修改它,以便仅返回匹配的前10个实例?

可以通过将正则表达式自身以.*?分隔后的方式将其连接起来,从而捕获该正则表达式的前十个实例.*? 然后,您可以使用前十个捕获组来提取作者:

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资源,但可以更轻松地响应不断变化的需求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM