如何在字符串末尾包含文件名

森林7

我使用 Regex 和 Linq 在与模式匹配的文件夹中搜索所有 .txt 文件。这部分代码如下所示:

private static IEnumerable<string> Search(string file)
        {
            return File
                .ReadLines(file)
                .Select(line => Regex.Match(line, pattern))
                .Where(match => match.Success)
                .Select(match => match.Value)
                .ToArray();
        }

然后在 .txt 中写入匹配项:

var files = Directory.EnumerateFiles(filePath, "*.txt");
var extracts = files.SelectMany(file => Search(file));
File.WriteAllLines("results.txt", extracts);

无论如何要写出匹配来自的文件的名称吗?我有一个字符串数组中的文件名。

var filenames = Directory.GetFiles(filePath, "*.txt")
                .Select(filename => Path.GetFileNameWithoutExtension(filename))
                .Select(filename => Regex.Match(filename, namePattern))
                .Where(match => match.Success)
                .Select(match => match.Value)
                .ToArray();

我的目标“results.txt”示例:

Example1 **file1.txt**
Example2 **file2.txt**
Example3 **file3.txt**

“示例”是已经在工作的部分,重点是我想以某种方式实现的。即使我必须重写整个代码,任何帮助也将不胜感激。谢谢!

雷内沃格特

您可以将文件名直接附加到匹配项:

var extracts = files.SelectMany(file => Search(file).Select(line => line + " " + file));
File.WriteAllLines("results.txt", extracts);

如果您需要在没有文件的情况下保持干净的“提取物”,您可以创建匿名对象:

var extracts = files.SelectMany(file => Search(file).Select(match => new {match, file}));
File.WriteAllLines("results.txt", 
                   extracts.Select(extract => extract.match + " " + extract.file));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python:文件名包含字符串(元字符?)

如何从包含绝对文件路径的字符串中获取文件名?

如何检查bash中是否存在文件名中包含特定字符串的文件?

如何使用 Powershell 列出包含字符串的文件的位置、文件名和行?

如何使用包含在字符串中的文件名使用 Python 打开文件?

查找包含字符串的文件名的函数

从包含文件名的字符串中提取模式

检查文件名中是否包含字符串

搜索包含文件名的字符串

查找不包含指定字符串的文件名

如何从包含带空格的文件名的bash函数返回字符串?

如何知道文件名在 Firebase 云存储中是否包含其他字符串?

UNIX命令行...如何grep和仅显示包含字符串的文件名?

自我更新字段包含文件名的子字符串,如何操作?

如何列出包含特定字符串的文件名

如何在特定字符后删除多个文件名中的字符串?

如何在短划线中测试文件名中的字符(或字符串)

如何在文件名的特定字符范围内搜索字符串?

如何在commnad line bash shell的文件文本中插入“字符串+文件名”?

Hadoop-搜索特定字符串,然后返回包含字符串的文件名

在文件名的末尾与字符串匹配的目录中查找最后一个文件

复制文件时将固定子字符串移动到文件名的末尾

通过将中间字符串移动到文件名末尾来重命名文件

从文件名的开头删除四个字符的字符串,从文件名的末尾删除十三个字符的字符串

如何在c#中验证字符串数组中的多个文件名

如何在每个文件名中删除一些字符串

如何在Python中将文件名从远程位置转换为字符串?

如何在C中生成数字文件名的字符串数组

如何从文件名中提取字符串?