如何设置windows路径正则表达式模式?

时间:2014-03-20 10:30:58

标签: c# regex visual-studio-2010

我有一个路径列表,我需要一个匹配所有以C:\Program Files\_folder_\_folder_\etc开头,然后有一个窗口路径可以使用的任何数量和任何类型的字符。 这是我的方法,但我想这只允许使用字母数字字符:

string pathPattern = @"C:\Program Files\_folder_\_folder_\etc[0-z]*";
if (System.Text.RegularExpressions.Regex.IsMatch(myList[n], pathPattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase)
    {
        //some action
    }

3 个答案:

答案 0 :(得分:2)

如果C:\Program Files\_folder_\_folder_\etc是预定义的部分。我认为您可以使用Regex

在没有Contains的情况下执行此操作
if(pathPattern.Contains(@"C:\Program Files\_folder_\_folder_\etc"))
{
    //some action
} 

编辑1:您可以在ToLower()

上执行pathPattern
var ss = pathPattern.ToLower().Contains(@"C:\Program Files\_folder_\_folder_\etc".ToLower());

答案 1 :(得分:1)

<强> 1。如果您希望您的路径应以:

开头
  

C:\ Program Files \

然后使用下面的代码:

if (Regex.IsMatch(code, @"[cC]{1}\:\\Program Files\\.*"))
{
   \\ Do Your work
}

<强> 2。如果您希望您的路径应以:

开头
  

c:\ Program Files_folder__folder _ \

然后使用下面的代码:

if (Regex.IsMatch(code, @"[cC]{1}\:\\Program Files\\_folder_\\_folder_\\.*"))
{
    \\ Do Your work
}

说明

  1. cC {1} :检查C盘(c:)
  2. @“[cC] {1} \:\ Program Files \ :检查C:\ Program Files
  3. 。* :检查C:\ Program Files
  4. 之后的任何文件夹

答案 2 :(得分:0)

试试这个正则表达式

^(?:[a-zA-Z]\:|\\\\[\w\.]+\\[\w.$]+)\\(?:[\w]+\\)*\w([\w.])+$

示例代码

string path = @"C:\Program Files\_folder_\_folder_\";
string pathPattern = @"^(?:[a-zA-Z]\:|\\\\[\w\.]+\\[\w.$]+)\\(?:[\w]+\\)*\w([\w.])+$"

if(System.Text.RegularExpressions.Regex.IsMatch(path, pathPattern)){
    //It matches the regex
}
else
{
    //it doesnot matches the regex
}

适合这些:

\\test\test$\TEST.xls
\\server\share\folder\myfile.txt
\\server\share\myfile.txt
\\123.123.123.123\share\folder\myfile.txt
c:\folder\myfile.txt
c:\folder\myfileWithoutExtension