簡體   English   中英

如何設置Windows路徑正則表達式模式?

[英]How to set windows path regex pattern?

我有一個路徑列表,我需要一個匹配的文件,所有C:\\Program Files\\_folder_\\_folder_\\etc都以C:\\Program Files\\_folder_\\_folder_\\etc ,然后具有Windows路徑可以使用的任何數量和任何類型的字符。 這是我的處理方式,盡管我猜這僅允許使用字母數字字符:

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
    }

如果C:\\Program Files\\_folder_\\_folder_\\etc是預定義的部分。 我認為您可以使用Contains無需Regex這樣的操作

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.如果您想要的路徑應該以:

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文件
  3. 。* :檢查C:\\ Program Files之后的任何文件夾

試試這個正則表達式

^(?:[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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM