我将文本文件与“..”等模式进行了比较,我只需要在文本文件中只写出不同的值......
while ((line = file.ReadLine()) != null)
{
foreach (Match match in Regex.Matches(line, @"(\w*)\.\."))
{
dest.WriteLine(match.Groups[1]);
}
counter++;
}
如何获得不同的价值......任何建议?
答案 0 :(得分:3)
如果尚未添加匹配项,请将匹配项添加到列表中?或者只是保留已经添加的内容的运行列表? 之类的东西:
List<string> seen = new List<string>();
string line = string.Empty;
while ((line = file.ReadLine()) != null)
{
foreach (Match match in Regex.Matches(line, @"(\w*)\.\."))
{
if (!seen.Contains(line))
{
Console.WriteLine(line);
seen.Add(line);
}
}
}
编辑:我在这里解释了你的意思;如果你真的想要匹配组的值,用条件替换条件块中的行。组[1] .Value ...
答案 1 :(得分:0)
我建议将值推送到数组中,然后使用它来忽略重复项:
ArrayList myValues = new ArrayList();
while ((line = file.ReadLine()) != null)
{
foreach (Match match in Regex.Matches(line, @"(\w*)\.\."))
{
if(!myValues.Contains(match.Groups[1])) {
myValues.Add(match.Groups[1]);
dest.WriteLine(match.Groups[1]);
}
}
counter++;
}
答案 2 :(得分:0)
如何将match.Group [1]添加到HashSet?
HashSet<string> hs = new HashSet<string>();
string line = "insert into depdb..fin_quick_code_met..jjj..depdb..jjj";
foreach (Match match in Regex.Matches(line, @"(\w*)\.\."))
{
hs.Add(match.Groups[1].ToString());
}
foreach (string item in hs)
Console.WriteLine(item);