我试图使用正则表达式获取具有特定文件名的图像:
我正在尝试这个:
/<img.+src=[\'"]([^\'"].+('myfilename.jpg').+[^\'"])[\'"].+\/>/
问题在于它将图像及其后的所有内容带回到另一个/>
。
我回来了:
<img alt="IMG_2329-1024x668" class="alignnone wp-image-10624" height="396" src="/sites/default/files/blog/wp-content/uploads/2015/11/IMG_2329-1024x668-1024x668.jpg" width="607" /> asdl;f jadsflja ds;fjadsf ;aklsdfj ads;flkjadsf;aldjsfadsf <br/>
而不是:
<img alt="IMG_2329-1024x668" class="alignnone wp-image-10624" height="396" src="/sites/default/files/blog/wp-content/uploads/2015/11/IMG_2329-1024x668-1024x668.jpg" width="607" />
答案 0 :(得分:2)
那是因为.+
贪婪,它会获得最长的匹配,而你希望它在第一场比赛时停止。
也许尝试添加一些?
以使其非贪婪(注意:正则表达式方言依赖)
/<img.+?src=[\'"]([^\'"].+?('myfilename.jpg').+?[^\'"])[\'"].+?\/>/