Замена строк в js файле при помощи c#

254
27 июля 2021, 14:30

Доброе время суток. Прошу помочь разобраться с реализацией замены строк в .js файле. Строки имеют следующей вид:

user_pref("mail.server.server1.port", 992);
user_pref("mail.smtpserver.smtp1.port", 583);
user_pref("mail.smtpserver.smtp1.username", "test150");

Замену строк делаю следующим образом

string[] allfiles = Directory.GetFiles(configuration, @"Filename.js", SearchOption.AllDirectories);
        foreach (var item in allfiles)
        {
            string content = File.ReadAllText(item);
            content = Regex.Replace(content, @"(\w|\.)*?ExampleEmail1\.(ru|lan)", @"@ExampleEmail2.ru", RegexOptions.IgnoreCase);
            content = Regex.Replace(content, @"user_pref(""mail.server.server1.port"", 992)", @"user_pref(""mail.server.server1.port"", 100)");
            if (File.Exists(item + ".old") == false)
                File.Copy(item, item + ".old");
            File.WriteAllText(item, content);
        }

В первой строке content где я меняю имя почты все предельно ясно и работает, но когда пытаюсь заменить сроки отвечающие за порт и т.п ничего не выходит. Хочу в файле менять всю строчку целиком, как мне это реализовать ?

Answer 1

Знаки ( и ) надо экранировать, \( и \), также как и точки (. => \.). Неэкранированные символы ( и ) задают захватывающую подмаску, а . находит любой символ, кроме перехода на новую строку (с опцией RegexOptions.Singleline находит любые символы).

Чтобы найти любые 1 и более цифр, используйте \d+.

Решение:

 var result = Regex.Replace(content, 
     @"user_pref\(""mail\.server\.server1\.port"", \d+\)", 
      "user_pref(\"mail.server.server1.port\", 587)");
Answer 2

Так и не понял ты хочешь поменять всю строку целиком или отдельно порт отдельно сервер? Если целиком то:

content = Regex.Replace(content, @"user_pref(.*)", @"user_pref(""mail.server.server1.port"", 100)");
READ ALSO
Вставить элемент в любое место документа

Вставить элемент в любое место документа

Есть функция, которая добавляет данные в конец документаКак сделать так, что бы данные добавлялись в середину документа/в любое место

127
Странное поведение функции toFixed

Странное поведение функции toFixed

Вот я обрезаю одно число:

116
Затемнение картинки с помощью другой картинки

Затемнение картинки с помощью другой картинки

Есть картинка, и другая как просто темная, я хочу чтобы при наведении чтобы одна оставалась такой же(основная), а вторая ложилась поверх ее и давала...

195