我正在尝试使用给定变量替换包含C#email脚本中括号的字符串。我在函数中的代码片段如下:
MailDefinition md = new MailDefinition();
md.From = "testmail@test.com";
string addressee = salutation;
ListDictionary replacements = new ListDictionary();
replacements.Add("\n", "<br />");
replacements.Add("(Name of Employee)", addressee)
string body = EmployeeQuery.getEmailMessageByCategory(category, subcategory);
MailMessage msg = md.CreateMailMessage("admin@test.com", replacements, body, new System.Web.UI.Control());
主要问题是代码的这一部分:
replacements.Add("(Name of Employee)", addressee)
“员工姓名”被替换为addressee变量的值。但是,它不会替换括号。
如何替换括号以便只添加addressee的值? TIA
答案 0 :(得分:1)
使用此:
replacements.Add("\\(Name of Employee\\)", addressee)
// \ acts as escape charecter, supressing the special meaning of next charecter
// (XYZ) matches XYZ as a group
// \\(XYZ\\) matches (XYZ)
答案 1 :(得分:1)
您需要输入“\\(”和“\\)”。 @denims的答案可能部分正确,但c#本身解释了字符串中的\。您可能需要通过您正在调用的方法来解释\。
那说方法文档并没有说明为什么会发生这种情况。