Сравните текстовый файл с шаблоном текста в C #? - PullRequest
3 голосов
/ 16 декабря 2010

Я сравнил текстовый файл с шаблоном типа "..", и мне нужно записать только отдельные значения в текстовый файл ...

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

    counter++;
}

Как получить различные значения ... Любое предложение?

Ответы [ 3 ]

3 голосов
/ 16 декабря 2010

Добавить совпадения в список, если они еще не были добавлены? Или просто вести текущий список того, что уже было добавлено? Нечто вроде :

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 ...

0 голосов
/ 16 декабря 2010

Как насчет того, чтобы добавить 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);
0 голосов
/ 16 декабря 2010

Я рекомендую помещать ваши значения в массив и использовать это, чтобы игнорировать дубликаты:

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++;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...