使用PHP我有一个数组返回图像的数据:
Array
(
[0] => http://website.dev/2014/05/my-file-name-here-710x557.png
[1] => 710
[2] => 557
[3] => 1
)
Run Code Online (Sandbox Code Playgroud)
基于上面的演示数据,我需要以某种方式将此图像URL转换为:
http://website.dev/2014/05/my-file-name-here.png-710x557从字符串中删除.
要记住的一些事情是:
我提到这个的原因是为了表明我不能简单地使用PHP的字符串函数来删除字符串中的最后12个字符然后再添加文件扩展名,因为最后的字符串字符有时可能长度在10到14个字符之间,而不是总是12 .
我希望避免使用繁重的正则表达式代码,但如果这是唯一或最好的方式,那么我说去吧.
如何编写一个正则表达式来删除PHP中可能具有不同长度的字符串的结尾?
你可以使用这样的正则表达式:
-\d+x\d+(\.\w+)$
Run Code Online (Sandbox Code Playgroud)

您可以使用的代码是:
$re = "/-\\d+x\\d+(\\.\\w+)$/";
$str = "http://website.dev/2014/05/my-file-name-here-710x557.png";
$subst = '\1';
$result = preg_replace($re, $subst, $str, 1);
Run Code Online (Sandbox Code Playgroud)
我们的想法是-NumbersXNumbers使用-\d+x\d+(我们将摆脱它)匹配分辨率,然后(\.\w+)$使用捕获组捕获文件扩展名.检查上面的替换部分.
| 归档时间: |
|
| 查看次数: |
526 次 |
| 最近记录: |