2016-04-08 112 views
0

你好家伙我想从html中的一行获取图像名称。我做在PHP,比如我有这样的行正则表达式来获取图像名称PHP

<img src="index_files/bottle2.jpg" name="product ds Grodsdwth" class="pullleft"> 

<img title="" src="index_files/ss-button.png" class="step-btn" alt=""></a> 

我想绝对得到bottle2.jpg和SS-button.png{#CDNPath#} IMG/imageName更换,以获取这个结果

<img title="" src="{#CDNPath#}img/ss-button.png" class="step-btn" alt=""></a> 

我有这样的正则表达式,但它不工作:

([a-z\-_0-9\/\:\.]*\.(jpg|jpeg|png|gif)) 

我很困惑这个逃脱和p atters请我将与你们

感谢
+0

像这样的事情? https://regex101.com/r/oA0rV6/1 –

回答

1

尝试使用这个正则表达式:

(<img.*?src=")((?:\w+\/)+?)([\w-]+\.(?:jpg|jpeg|png|gif))" 
  • 1st捕获组店开幕<img和其他属性,那么src="
  • 2nd捕获组存储图像文件夹,即index_files/index_files/a/
  • 3rd捕获组存储映像名称

替换为:

$1{#CDNPath#}img/$3" 

Live Demo on Regex101

+0

Aweasome只是在标签src结尾的一个怀疑它的缺失“是不是? –

+1

@MarcoPerez是的,只是一个添加'''到替换结束(或使用积极的向前看 - 用'(?=“)'替换RegEx中的最后一个''',并保持你的替换相同)。我已更新回答 – Druzion

+0

是的男人当然!非常感谢对我来说这很困难正则表达式我很喜欢教程一些表达式对我来说很难 –