繁体   English   中英

使用正则表达式返回具有特定命名约定的文件夹

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM