簡體   English   中英

C#Regex匹配目錄模式

[英]C# Regex to match a directory pattern

我想要一個正則表達式來運行Directory.GetAllDirectories()例如

 Directory.GetDirectories(pathToMonitor, "*.*", SearchOption.AllDirectories)
.Where(path => new Regex(pattern, RegexOptions.IgnoreCase).IsMatch(path))
.ToList();

目錄遵循這樣的模式:

[可變數量的目錄] \\ $ PROJECT $ \\ $ TYPE $ \\ $ BRANCH $ \\ [可變數量的目錄]

我想忽略第一組[可變數量的目錄],然后是3個目錄。 我不想在$ BRANCH $目錄后面包含任何內容。 $ TYPE $目錄必須是“Ft”或“Dev”。

我有以下幾乎可以工作的模式......

string pattern = @"\w+\\(Ft|Dev)\\";

不幸的是,該模式也將獲取$ BRANCH $文件夾之后的所有文件夾。

具體來說,像這樣的文件夾列表:

  • C:\\用戶\\我\\桌面\\項目\\開發\\分公司\\
  • C:\\用戶\\我\\桌面\\項目\\開發\\分公司\\子\\子
  • C:\\用戶\\我\\桌面\\項目\\英尺\\分公司\\子\\子
  • C:\\用戶\\我\\桌面\\項目\\英尺\\分公司\\
  • C:\\用戶\\我\\桌面\\項目\\ QA \\分公司\\
  • C:\\用戶\\我\\桌面\\項目\\ QA \\分公司\\子\\子

在正則表達式之后應該過濾到這個:

  • C:\\用戶\\我\\桌面\\項目\\開發\\分公司
  • C:\\用戶\\我\\桌面\\項目\\英尺\\分公司

編輯:清除目錄模式上的格式

您可以使用此模式執行此操作:

@"\w\\(?:Ft|Dev)\\Branch\\?$"

其中$是字符串結尾的錨點。

暫無
暫無

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

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