C # Строка соответствия с использованием регулярных выражений для точного соответствия и подстановочных знаков - PullRequest
0 голосов
/ 28 октября 2019

Здравствуйте. У меня есть требование сопоставлять строки с узлами XML-файла. Один из узлов должен иметь точное значение для сопоставления, а один узел содержит подстановочный знак для сопоставления в случае, если точное совпадение не найдено. Например, что-то похожее:

<Fruit name="Apple">
Red     
</Fruit>
<Fruit name="App.*">
White       
</Fruit>

Когда мое приложение получает аргумент «Apple», оно должно выбрать 1-й узел, то есть соответствовать точному значению, и если я получаю «Appo», оно должно выбрать второй узел, то есть подстановочный знакузел.

Я пробовал следующее, но он всегда учитывает второй узел, т. Е. Подстановочный знак, хотя сначала он совпадает с первым узлом:

foreach (XmlNode xn in xnFruit)
    {
       if (xn.Attributes["name"] != null)
        {
           Match sourceMatch = Regex.Match(source, xn.Attributes["name"].Value, RegexOptions.IgnoreCase);
              if (sourceMatch.Success)
                  {
                    Console.WriteLine(xn.FirstChild.InnerText);
                   }
        }
    }

Может кто-нибудь подсказать, как сделать это правильно,Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...