Ошибка компиляции плохой строки

1

То, что я пытался сделать, это создать строку с использованием переменных для определенных частей, а затем использовать регулярное выражение, чтобы найти и заменить его. Но по какой-то причине я не понимаю, что получаю плохую компиляцию постоянной ценности. Итак, для кода ниже "<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 будет равным Бобу и myObj.Fullname будет равным Бобу Баркеру, тогда y регулярное выражение будет соответствовать чему-то вроде этого <span id="Bob" class="smartfield" contenteditable="false">[Bob Barker]

  • 0
    Какой тип myObj.name ? А что такое точное сообщение об ошибке?
  • 4
    "\]" это проблема. Нераспознанная escape-последовательность.
Показать ещё 2 комментария
Теги:
string

1 ответ

2
Лучший ответ

Вам следует избегать \ before \[ и \], сделав это \\[ и \\]:

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

Это заканчивается в читаемой пользователем строке Regex (это правильно, так как вам нужно убежать [ и ] для регулярного выражения):

<span id="name" class="smartfield" contenteditable="false">\[FullName\]
  • 0
    \[ используется для выхода из [ . Я не ищу ``
  • 0
    Да, но \ имеет значение в c #, как вы знаете для \" , вы должны сделать то же самое для \, то есть \\.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню