我尝试做的是使用某些部分的变量创建一个字符串,然后使用正则表达式来查找和替换它。但由于某种原因,我不明白我得到一个糟糕的编译常量值。所以对于下面的代码"<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]
这样的东西
答案 0 :(得分:2)
您应该在\
和\[
之前转义\]
,使其成为\\[
和\\]
:
string replacePattern = "<span id=\"" + myObj.name+ "\" class=\"smartfield\" contenteditable=\"false\">\\[" + myObj.FullName + "\\]";
最终会出现人类可读的Regex
字符串(这是正确的,因为您需要为正则表达式转义[
和]
):
<span id="name" class="smartfield" contenteditable="false">\[FullName\]