[英]Using Regex to return folders with a specific naming convention
我有点难以理解形成正则表达式方法的语法。 基本上我调用下面的方法来搜索上层目录,然后我使用正则表达式来防止选择任何命名约定不正确的文件夹。
List<string> folders = Directory.GetDirectories(upperDirectory, "*", SearchOption.TopDirectoryOnly).Where(f => Regex.IsMatch(f, @"[D[0-9][0-9][0-9][0-9]]")).ToList();
所有文件夹的命名约定必须是...
[D####] - Description of folder content
因此文件夹必须以一个方括号开头,后跟 D,然后是 4 个数字,然后是一个右括号。 此后的任何内容都可以忽略。 成功完成此操作的正确正则表达式语法是什么?
这应该工作
^\[D\d{4}\]
解释:
^
在行首断言位置 - 这意味着文件夹的名称以:
\\[
匹配字符[
字面意思
D
字面上匹配字符D
(在这种情况下区分大小写)
\\d
匹配一个数字(相当于 [0-9])
{4}
与前一个标记(在本例中为数字)正好匹配 4 次
\\]
]
从字面上匹配字符]
匹配开始使用: ^
以使用结束匹配: $
regex => [D####] = "^\[D[0-9][0-9][0-9][0-9][]]$"
要么
regex => [D####] = "^[[]D[0-9][0-9][0-9][0-9]\]$"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.