2013-05-03 38 views
1

我試圖使用preg_match來將每張照片的文件名爲gallery\album\U[digits].jpg的標題標記爲「無標題」。正則表達式中的照片名稱不起作用

下面是代碼:

foreach($photos as $photo){ 
    if (preg_match('.*U[0-9]*\.jpg',$photo)) { 
    $title = "Untitled"; 
    } 
    else { 
    $title = basename($photo,".jpg"); 
    } 
} 

任何想法,這是爲什麼不匹配?任何這些文件的標題最終都是「U2」或「U29」。

+1

好了,你不配套U * .JPG,你匹配Udigits.jpg – melwil 2013-05-03 17:56:56

+0

是啊,對不起,讓我修改那個... – NaOH 2013-05-03 17:57:32

回答

4

嘗試,

if (preg_match('@U[0-9][email protected]',$photo)) { 

DEMO.

+0

這工作完美。謝謝!我可以問問有什麼不同嗎? – NaOH 2013-05-03 18:01:16

+0

@NaOH - 您的表達方式正確,只需在正則表達式的開始和結尾添加分隔符「@」即可使其正常工作。並用'[0-9] +'替換'[0-9] *'。 – Rikesh 2013-05-03 18:05:03

+0

分隔符可以是任何非字母數字,非反斜槓,非空白字符。 – Bart 2013-05-03 18:20:41