2016-01-01 178 views
2

我需要在我的例子中選擇原始圖像是帶有任何擴展名的'image1.jpg'。所有字符串的正則表達式不包含特定的字符串

image1-150x150.jpg 
image1-225x300.jpg 
image1-768x1024.jpg 
image1.jpg 

我已經試過如下:

preg_grep("/-([0-9]+x[0-9])+/", $image); 

如何排除其他文件,並選擇 「image1.jpg」?

+1

請問您是否可以添加一點內容? – sidyll

+0

謝謝。它的工作原理,但我想寫沒有PREG_GREP_INVERT。因爲它會在一些情況下使用,而無需preg_grep –

回答

2

我想沒有PREG_GREP_INVERT寫,因爲它會在某些情況下使用,無需preg_grep

那麼你可以使用負前瞻否定包含模式\d+x\d+字符串:

/^((?:.(?!\d+x\d+))*\.[^.]+)$/gm 

它會基於您提供的輸入捕獲image1.jpg - example here

  • ^ - 錨定到線(由於使用了m標誌)的開頭相匹配。

  • .(?!\d+x\d+))* - 匹配零個或多個字符後面沒有\d+x\d+

  • \.[^.]+ - 匹配.字符字面後面是不是.

  • $一個或多個字符 - 錨到底匹配的線。

+0

它的工作原理。感謝您的詳細描述。感謝所有回覆的人。新年快樂 –

相關問題