我創建與Windows的文件系統的文件路徑功能相匹配的正則表達式時,如預期:的preg_match不表現驗證窗口文件系統路徑
c:\WINDOWS\SYSTEM32\cmd\a.php //valid match
c:\WINDOWS\SYSTEM32\cmd\a //invalid match
這種模式和代碼:
function validate_filepath()
{
$view_path = 'c:\WINDOWS\SYSTEM32\cmd\a.php';
// ^(?:[\w]\:) # matching drive
//(?:\\[^\\:*?"<>|\r\n]+)+\\ # matching folder
// [^\\:*?"<>|\r\n]+\.(?:php) # matching file and php extension
$regex = '/^(?:[\w]\:)(?:\\[^\\:*?"<>|\r\n]+)+\\[^\\:*?"<>|\r\n]+\.(?:php)/mi';
preg_match($regex, $view_path, $matches);
return($matches[0]);
}
我已經使用https://regex101.com嘗試過這種模式,並且它與路徑匹配,但在使用PHP的preg_match時不會發生。我在哪裏犯了一個錯誤?
我還沒有真正看過PHP如何處理字符串,但我使用雙反斜線和regexonline正確的方式進行測試,但仍然PHP返回null $匹配
編輯: 我使用的PHP 5.6.17
提示:有一個看看'x'正則表達式修改爲直列評論 – bwoebi