gpt4 book ai didi

c# - 根据 Notepad++ 中的列提取重复行(或通过 C#)

转载 作者:太空宇宙 更新时间:2023-11-03 22:52:25 27 4
gpt4 key购买 nike

我有一个文件有一些重复的序列号。我想要做的是只显示我的重复项。我的文件看起来像这样:

John Doe    000115   
Wilson Chan 000386
Tye Owens 000589
James Peter 000211
Carl Spade 000445
Sally Doe 000213

序号从第15位开始,到第17位结束。我想要的输出是:

James Peter 000211    
Sally Doe 000213

Sally 和 James 都是 02 的序列。我完全不熟悉正则表达式,只是发现 ^(.{15})[^-](.*)$ 让我排在第 15 位。在那之后我被困住了。有没有办法在 notepad++ 或 VBS 中完成此操作?

最佳答案

当你正在寻找这样的骗子时,不建议使用正则表达式方法,你可以编写一个小程序,比如用 C# 将文本拆分为单独的行,在行之外创建键值对,使用key是Index 15处长度为2的子串,然后分组得到count大于1的。

var txt = @"John Doe    000115   \nWilson Chan 000386\nTye Owens   000589\nJames Peter 000211\nCarl Spade  000445\nSally Doe   000213";
var splits = txt.Split('\n') // Split into lines
.Select(m => new KeyValuePair<string,string>(m.Substring(15,2), m)) // Create key value pairs
.GroupBy(z => z.Key) // Group by the 2-char substring
.Where(y => y.Count() > 1); // Grab only those with the same key
foreach (var x in splits) // Display the groups
{
Console.WriteLine("--- {0} ---", x.Key);
foreach (var y in x)
Console.WriteLine(y.Value);
}

参见 C# demo

输出:

--- 21 ---
James Peter 000211
Sally Doe 000213

关于c# - 根据 Notepad++ 中的列提取重复行(或通过 C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46856201/

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