我创建与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