У меня есть длинная строка, где у меня есть «зарезервированные слова», которые мне нужно заменить их значением из db.C# regex заменить проблемы с динамическими совпадениями?
eg.
string text = "You're salary for the month of ((month)) is ((salary))
Теперь то, что я сделал, чтобы соответствовать каждому и каждый зарезервированное слово, а затем искать через мой набор данных, а затем заменить те, с их значением
Regex ex = new Regex(@"(?<=\(\().*?(?=\)\))");
foreach(Match match in ex.Matches(body)){
string valuefromset = values.FirstOrDefault(val => val.Variable == match.Value).Value;
var pattern = @"(("+match.Value+"))";
body = Regex.Replace(body, pattern, valuefromset, RegexOptions.IgnoreCase);
}
}
Теперь, что происходит это
text = "You're salary for the month of ((April)) is (($10000))";
Я не был уверен, почему шаблон просто получит слова, а не теги. Должен ли я использовать другое регулярное выражение, но с конкретным значением? Наличие определенного зарезервированного слова является значимым в шаблоне, поэтому я использовал его, не был уверен, что я делаю.
Любая помощь приветствуется. Благодаря!!!
Ничего напрямую связанного, но вы должны использовать «Твой», а не «Ты». – Shimrod
Неизвестно, существуют ли токены (зарезервированные слова) в строке? Есть много потенциальных токенов? Похоже, что использование метода StringBuilder .Replace будет более эффективным и менее сложным. – MyItchyChin