用于验证exe的完整路径的正则表达式。我对正则表达式一无所知。
例如:如果exe路径是
C:\Programs\Files\User\Location\Sample.exe
或
C:\ SAMPLE.EXE
或
C:\programs\sample.exe
即。需要一个正则表达式来有效的exe的完整路径。
如果它没有exe的完整路径,它应该将其视为错误。
答案 0 :(得分:2)
你可能不应该在这里使用正则表达式。只需询问文件系统文件是否存在。
如果您只是寻找有效路径(不关心它是否存在)
using System.IO;
var path = "";
if (path == Path.GetFullPath(path) && Path.GetExtension(path) == ".exe")
{
//We have a valid path.
}
答案 1 :(得分:1)
这是一个简单的正则表达式,假设您在C驱动器上匹配Windows样式路径(我根据您的示例做出的假设):
([A-Z]:)?\\.*\.exe
答案 2 :(得分:0)
下面的正则表达式模式检查有效的本地驱动器(c,d,...),不包括UNC路径(\ ...)。
(?i)^[a-z]:\\[^/:*?"<>|]*[^\\]\.exe$
它不会接受无效的路径字符,如果路径中存在任何字符,则会失败。如您所见,该模式仅接受exe
扩展名。您可以将其更改为任何其他扩展程序或多个扩展程序,如下所示:
(?i)^[a-z]:\\[^/:*?"<>|]*[^\\]\.(?:exe|doc|txt)$
在这种情况下,如果文件扩展名是exe,doc或txt,则验证成功。
模式开头的(?i)
开关会关闭区分大小写。但是,该开关仅适用于具有EnableClientScript="false"
的RegularExpressionValidator。否则,将使用Javascript在客户端进行验证,javascript正则表达式引擎无法识别该开关。并且无法关闭区分大小写。在这种情况下,您必须指定所有可能的匹配,大写或小写:
^[a-zA-Z]:\\[^/:*?"<>|]*[^\\]\.(?:[eE][xX][eE]|[dD][oO][cC]|[tT][xX][tT])$
答案 3 :(得分:-1)
Regex不会告诉您单个EXE的完整路径是否有效,例如,您如何知道文件是否存在,或者目录,或者驱动器本身是什么?< / p>
您需要的是System.IO.File.Exists(xxxxxxxx);