我需要在我的例子中選擇原始圖像是帶有任何擴展名的'image1.jpg'。所有字符串的正則表達式不包含特定的字符串
image1-150x150.jpg
image1-225x300.jpg
image1-768x1024.jpg
image1.jpg
我已經試過如下:
preg_grep("/-([0-9]+x[0-9])+/", $image);
如何排除其他文件,並選擇 「image1.jpg」?
我需要在我的例子中選擇原始圖像是帶有任何擴展名的'image1.jpg'。所有字符串的正則表達式不包含特定的字符串
image1-150x150.jpg
image1-225x300.jpg
image1-768x1024.jpg
image1.jpg
我已經試過如下:
preg_grep("/-([0-9]+x[0-9])+/", $image);
如何排除其他文件,並選擇 「image1.jpg」?
我想沒有
PREG_GREP_INVERT
寫,因爲它會在某些情況下使用,無需preg_grep
那麼你可以使用負前瞻否定包含模式\d+x\d+
字符串:
/^((?:.(?!\d+x\d+))*\.[^.]+)$/gm
它會基於您提供的輸入捕獲image1.jpg
- example here。
^
- 錨定到線(由於使用了m
標誌)的開頭相匹配。
.(?!\d+x\d+))*
- 匹配零個或多個字符後面沒有\d+x\d+
\.[^.]+
- 匹配.
字符字面後面是不是.
$
一個或多個字符 - 錨到底匹配的線。
它的工作原理。感謝您的詳細描述。感謝所有回覆的人。新年快樂 –
請問您是否可以添加一點內容? – sidyll
謝謝。它的工作原理,但我想寫沒有PREG_GREP_INVERT。因爲它會在一些情況下使用,而無需preg_grep –