我正在使用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 2015-02-23 17:02:18
在'$'前面放置一个反斜杠来转义它,即使用'“\ $”'。或者'Regex.Escape(“$ name”)' – CodesInChaos 2015-02-23 17:02:27
当我使用te Regex.Escape(“$ name”)时,它不断将$ namewebsite替换为getName()网站 – Kyore 2015-02-23 17:53:34