gpt4 book ai didi

特定数量字符的 C# 通配符

转载 作者:行者123 更新时间:2023-11-30 21:31:55 30 4
gpt4 key购买 nike

我想选择所有在星号所在位置具有确切 4 个“未知”字符的文档:(例如“****”可能是“2018”)

foreach (string s in Directory.GetFiles(@"C:\Users\MyUser\Documents\ExampleTitle ****.xml").Select(Path.GetFileName))
{
// Do something!
}

我知道星号 * 将匹配每个字符,无论星号之间有多少个字符。但正如所描述的,我只想选择具有特定数量未知字符的结果。

最佳答案

您不能在路径参数中指定通配符,您需要提供路径和搜索模式,参见 GetFiles(String, String) .

搜索模式接受两个通配符,?对于单个字符和 *对于任何数量的字符。因此,你需要

Directory.GetFiles(@"C:\Users\MyUser\Documents", "ExampleTitle ????.xml")

如果您计划只匹配数字,则必须使用正则表达式来过滤 Directory.GetFiles 的结果:

var fileList = Directory.GetFiles(@"C:\Users\MyUser\Documents", "*.xml")
.Where(p => Regex.IsMatch(Path.GetFileName(p), @"^ExampleTitle [0-9]{4}\.xml$"))
.ToList();

在这里,Directory.GetFiles(@"C:\Users\MyUser\Documents", "*.xml")将获取给定文件夹中的所有 XML 文件,以及与 ExampleTitle <4-DIGITS>.xml 完全匹配的文件然后将返回模式与 Where条款。

关于特定数量字符的 C# 通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52698571/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com