Найти и заменить строку в файле C# - PullRequest
1 голос
/ 28 апреля 2020

Я хочу найти и взять ключевое слово, а затем сопоставить его с другим ключевым словом, а затем заменить значения из словаря. Вы можете увидеть содержимое ниже, который находится в моем текстовом файле. Итак, мне нужно найти $, а затем мне нужно взять слова, которые находятся в фигурных скобках. Например, мне нужно взять username, serviceName и serviceDescription.

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

Hi ${username},
Following services has reported  some issue:
${serviceName}: ${serviceDescription}

Заранее спасибо

1 Ответ

2 голосов
/ 28 апреля 2020

Вот что я придумал:
Я использовал C# Регулярные выражения и заменил совпадения соответствующими значениями в словаре

class Program
    {
        static readonly Regex re = new Regex(@"\$\{(\w+)\}", RegexOptions.Compiled);
        static void Main(string[] args)
        {
            var dict = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase) {
                { "username", "alpha" },
                { "serviceName", "azure service" },
                { "serviceDescription", "azure service has stopped" }
           };

            var log = File.ReadAllText("log.txt");

            string output = re.Replace(log, match => dict[match.Groups[1].Value]);
        }
    }

Ваш вывод будет выглядеть примерно так

Hi alpha,
Following services has reported  some issue:
azure service: azure service has stopped
...