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