错误的字符串编译错误

时间:2014-10-15 20:41:45

标签: c# regex string

我尝试做的是使用某些部分的变量创建一个字符串,然后使用正则表达式来查找和替换它。但由于某种原因,我不明白我得到一个糟糕的编译常量值。所以对于下面的代码"<span id=\"" + myObj.name+,dos没有任何错误,但其余的错误。

foreach (var myObj in listofObj)
{               
  string replacePattern = "<span id=\"" + myObj.name+ "\" class=\"smartfield\" contenteditable=\"false\">\[" + myObj.FullName + "\]"; 

我也试过这个

string replacePattern = @"<span id="""+  myObj.name+""" class=""smartfield"" contenteditable=""false"">\[" + myObj.FullName + "\]";   

,和之前一样,第一部分没有任何错误,但第二部分抛出了"\]"的错误编译常量值,但这次它说我需要;为双引用我试图逃避。

修改

我正在寻找的字符串格式例如myObj.name等于Bob,而myObj.Fullname等于Bob Barker,所以y regex会匹配像<span id="Bob" class="smartfield" contenteditable="false">[Bob Barker]这样的东西

1 个答案:

答案 0 :(得分:2)

您应该在\\[之前转义\],使其成为\\[\\]

string replacePattern = "<span id=\"" + myObj.name+ "\" class=\"smartfield\" contenteditable=\"false\">\\[" + myObj.FullName + "\\]"; 

最终会出现人类可读的Regex字符串(这是正确的,因为您需要为正则表达式转义[]):

<span id="name" class="smartfield" contenteditable="false">\[FullName\]