Доброе время суток. Прошу помочь разобраться с реализацией замены строк в .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 где я меняю имя почты все предельно ясно и работает, но когда пытаюсь заменить сроки отвечающие за порт и т.п ничего не выходит. Хочу в файле менять всю строчку целиком, как мне это реализовать ?
Знаки (
и )
надо экранировать, \(
и \)
, также как и точки (.
=> \.
). Неэкранированные символы (
и )
задают захватывающую подмаску, а .
находит любой символ, кроме перехода на новую строку (с опцией RegexOptions.Singleline
находит любые символы).
Чтобы найти любые 1 и более цифр, используйте \d+
.
Решение:
var result = Regex.Replace(content,
@"user_pref\(""mail\.server\.server1\.port"", \d+\)",
"user_pref(\"mail.server.server1.port\", 587)");
Так и не понял ты хочешь поменять всю строку целиком или отдельно порт отдельно сервер? Если целиком то:
content = Regex.Replace(content, @"user_pref(.*)", @"user_pref(""mail.server.server1.port"", 100)");
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть функция, которая добавляет данные в конец документаКак сделать так, что бы данные добавлялись в середину документа/в любое место
Есть картинка, и другая как просто темная, я хочу чтобы при наведении чтобы одна оставалась такой же(основная), а вторая ложилась поверх ее и давала...