正则表达式只获取图像名称PHP

时间:2016-04-08 17:43:54

标签: php regex replace match

大家好我想从html中的一行获取图片名称。我在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>

我希望jus获取 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))

我对这个逃脱和模式感到困惑,我会感谢你们

1 个答案:

答案 0 :(得分:1)

尝试使用此RegEx:

(<img.*?src=")((?:\w+\/)+?)([\w-]+\.(?:jpg|jpeg|png|gif))"
  • 1st捕获群组存储开场<img和其他属性,然后是src="
  • 2nd捕获群组存储图片文件夹,即index_files/index_files/a/
  • 3rd Capture Group 存储图片名称

替换为:

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

Live Demo on Regex101