我想要一个正则表达式来运行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 $文件夹之后的所有文件夹。
具体来说,像这样的文件夹列表:
应该在正则表达式后过滤到这个:
编辑:清除目录模式上的格式
答案 0 :(得分:2)
您可以使用此模式执行此操作:
@"\w\\(?:Ft|Dev)\\Branch\\?$"
其中$
是字符串结尾的锚点。