[英]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 $文件夾之后的所有文件夾。
具體來說,像這樣的文件夾列表:
在正則表達式之后應該過濾到這個:
編輯:清除目錄模式上的格式
您可以使用此模式執行此操作:
@"\w\\(?:Ft|Dev)\\Branch\\?$"
其中$
是字符串結尾的錨點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.