這很簡單, 但我服用一個完整的目錄列表(PHP中dir()
),並確保它都「」我怎樣才能確保一件事情匹配,而一件事情沒有,在一個正則表達式?
- 不或「..」,
- 以文件擴展名.jpg,.jpeg,.gif或.png結尾。
現在我有
function isValidFile($filename) {
$dirDotExpr = "/^\.{1,2}$/"; //matches against "." and ".."
$extExpr = "/\.(jpg|jpeg|gif|png)$/i"; //checks file extension
return (1
&& ! preg_match($dirDotExpr, $filename)
&& preg_match($extExpr, $filename)
)
}
,但它會是不錯的做這一切在一個正則表達式。但是,我不知道如何確定一件事情是否匹配,並且有一件事情不是 - 我該如何做到這一點?
在附註上,關於單個正則表達式的問題,請注意將所有邏輯放入一個正則表達式通常不是最佳解決方案。它可能會傷害可讀性和速度。 – Geert 2009-07-10 08:50:47