2013-10-29 57 views
-4

我想驗證C:\,D:\,E:\但下面的代碼也接受不同的值。使用PHP正則表達式驗證文件路徑

問題

此代碼接受ASASASD:192.168.10.28:這是我的情況下無效。

<?php 

//sting coming as c drive 
$string = "C:\\"; 

//sting coming as d drive 
$string1 = "adsasdasdD:\\"; 

//sting coming as e drive 
$string2 = "E:\\"; 

//validate using reqular expression 
preg_match("#^[a-zA-Z0-9:.-]+#", $string1, $out); 

//output the string 
print_r($out); 

請幫我解決這個問題。提前致謝。

+1

該正則表達式只包含這些字符的任意字符串匹配,爲什麼會驗證它只是那些驅動器的信嗎? – nickb

+0

^[a-zA-Z0-9:.-] +允許出現一個或多個字母,數字,冒號,點或連字符。 –

+0

我並不是正則表達式的專家,但是這顯然與冒號前的任何數字都匹配。 – PMF

回答

2

對於任何字母的單個出現,請使用[A-Za-z]+允許一個或多個先前模式的出現。

所以,你想要的是[A-Za-z]:\\