Geçerli bir dosya adı bulmak için regex

2 Cevap php

Ben bir dize bir dosya adı (isim DOT dahili) olup olmadığını kontrol etmek istiyorum.

Dosyanın adı içeremez / ? * : ; { } \

Siz) (preg_match kullanmak bana regex ifadesini önermek misiniz?

2 Cevap

Buyrun:

"[^/?*:;{}\\]+\\.[^/?*:;{}\\]+"

"Daha sonra bu olanlardan herhangi biri, o zaman bir nokta, bu olanları değil, bazı daha fazla karakter değil bir veya daha fazla karakter."

(Sürece nokta gerçekten gerekli olduğundan emin olduğunuz gibi - değilse, o basitçe: "[^/?*:;{}\\]+"

Regex (üç harfli bir uzantı için) gibi bir şey olurdu:

^[^/?*:;{}\\]+\.[^/?*:;{}\\]{3}$

PHP ters eğik kaçtı ihtiyacı, ve preg_match() öne doğru eğik, bu yüzden kaçtı gerekir:

$pattern = "/^[^\\/?*:;{}\\\\]+\\.[^\\/?*:;{}\\\\]{3}$/";

"hosts" veya ".htaccess", bu biraz değiştirilmiş ifadeyi kullanmak gibi dosya maç için:

^[^/?*:;{}\\]*\.?[^/?*:;{}\\]+$