我在网络抓取程序中使用以下正则表达式。它正在为一个项目符号列表抓取html,但它只抓住了第一颗子弹并将其他9颗子弹留在后面。
如何修改它以获取所有10颗子弹?
<li>\s*<span\s+class=\"a-list-item\">(.*?)<\/span>\s*<\/li>
感谢您的帮助。
答案 0 :(得分:2)
使用正则表达式,您可以要求使用{}
个字符重复特定次数的模式。您可以拥有任意数量的组。所以,你可以这样做:
(<li>\s*<span\s+class=\"a-list-item\">(.*?)<\/span>\s*<\/li>){10}
(或者,如果你需要更多或更少,像:
(<li>\s*<span\s+class=\"a-list-item\">(.*?)<\/span>\s*<\/li>){1,10}
(这个答案假设你的字符串的其余部分恰好是正则表达式解释器的合法正则表达式。如果没有,则修改。)