所以,我知道这听起来有点奇怪,但基本上这是我的HTML示例:
$400 + free shipping</title>
<link>https://www.dealnews.com/Samsung-50-4-K-HDR-LED-Smart-TV-for-400-free-shipping/17336849.html?iref=rss-dealnews-editors-choice</link>
<description><img src='http://c.dlnws.com/image/upload/f_auto,t_large,q_auto/content/vdiy8a75wg8v7bo92dhq'
我只想捕获之前有美元符号的项目的网址,例如在$ ....之后翻译(URL) 目前我的正则表达是这样的:
img src ='([^'] +)'。*
这会抓住每个img src,但是我只想像我之前说的那样在它之前有“$”符号,基本上我不想要任何与这个HTML页面上的产品无关的图像
答案 0 :(得分:-1)
查看您提供的HTML示例,您的产品图片似乎直接以<description>
HTML标记开头。在所需的URL之前直接使用非捕获组需要较少的处理能力(和时间),而不是一直回顾潜在的(但未授予的)$符号。如果您仅为产品使用<description>
标记,则此正则表达式将满足您的需求:
(?:<description><img src=')([^']+)
需要考虑的其他事项:
<
代码前使用<
和img
:
(?:<description>(?:<|<)img src=')([^']+)
如果我们考虑到描述标记的开始和结束实体,我们最终还是会这样:(?:(?:<|<)description(?:>|>)(?:<|<)img src=')([^']+)