繁体   English   中英

将文本文件与c#中的文本模式进行比较?

[英]Compare a text file with a pattern of text in c#?

我已经将文本文件与像“..”这样的模式进行了比较,我只需要在文本文件中编写不同的值...

while ((line = file.ReadLine()) != null)
{
    foreach (Match match in Regex.Matches(line, @"(\w*)\.\."))
    {
        dest.WriteLine(match.Groups[1]);
    }

    counter++;
}

如何获得不同的价值......任何建议?

如果尚未添加匹配,请将匹配添加到列表中? 或者只是保留已经添加的内容的运行列表? 像这样的东西:

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);
            }
        }
    }

编辑:我在这里解释了你的意思; 如果你真的想要匹配组的值,用match.Groups [1]替换条件块中的行.Value ...

我建议将值推送到数组中,并使用它来忽略重复:

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++;
}

你如何将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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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