2012-02-27 121 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