完整路径的正则表达式

本文关键字:正则表达式 路径 | 更新日期: 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);