Я использовал StringBuilder.Replace()
, чтобы изменить некоторые «ключевые слова» на мои собственные методы, но поскольку он не соответствует всему слову, мне нужно найти способ его правильно заменить.
string example = "Hey $name! Welcome to $namewebsite!";
StringBuilder sb = new StringBuilder(example);
sb.Replace("$name", "getName()");
sb.Replace("$namewebsite", "getWebSiteName()");
return sb;
Над выходом будет «Эй GetName() !, Добро пожаловать на GetName() веб-сайт!», Так что я пытаюсь использовать регулярные выражения, чтобы соответствовать слово целиком.
string example = "Hey $name! Welcome to $namewebsite!";
example = Regex.Replace(example, "\b$name\b", "getName()");
example = Regex.Replace(example, "\b$namewebsite\b", "getWebSiteName()");
return example;
Но так как «ключевое слово» имеет символ «$» не работает, по крайней мере, это то, что я думаю, потому что она не заменит ни одна из «ключевых слов».
Конечно, это всего лишь небольшой пример моего кода. У меня есть 30+ ключевых слов, начиная с «$», чтобы заменить имена методов.
Вы попробовали экранировать его с помощью '\ $'? – arco444
Положите обратную косую черту перед '' ', чтобы избежать ее, т. Е. Используйте' '\ $" '. Или, альтернативно, 'Regex.Escape (« $ name »)' – CodesInChaos
Когда я использую te Regex.Escape («$ name»), он продолжает заменять сайт $ namewebsite на getName() – Kyore