2012-02-27 122 views
2

嘿家伙我试图去掉最后_1.jpg如果它 存在我的表达,但我有一些麻烦preg_match懒惰?

情景如下。

image_name_1.jpg (should be image_name.jpg)

image_name_1_1.jpg (should be image_name_1.jpg)

我想出了这一点,但它似乎是返回null

$pic = ($pic[strlen]-6 == '_') ? preg_replace('/*.\_[0-9]/', '.jpg', $pic) : $pic;

这有什么错我的公式?有人可以帮忙吗?

+0

只需使用str_replace一次即可将“_1.jpg”替换为“.jpg” – hackartist 2012-02-27 19:02:41

+0

如果它的_2虽然或_4或_9不限于一个整数,那么该如何处理这个[[0-9]' – ehime 2012-02-27 19:03:50

回答

2

这应做到:

preg_replace('/_\d\.jpg$/', '.jpg', $pic); 
1

*.使得这里truble。您可以使用*.? - ?表示惰性定量。

但是你的表达并没有模式化整个输入字符串,只有目标 - 见ohaal的答案。

+0

现在一年多的问题=) – ehime 2013-09-10 19:23:56