2010-11-09 2 views
0

Мне нужно заменить все / на \ во всех матчах шаблона src="" внутри строки.Как заменить этот шаблон на Regex?

Т.е., картина начинается с src=" и заканчивается "

Там может быть несколько совпадений внутри строки.

Я пробовал это, но это не соответствует:

"src=\"^*\"$" 

ответ

1

Вы можете использовать

String input = @"...src=""/foo/bar"".."; 
String output = Regex.Replace(input, "src=\"[^\"]*\"", (m) => m.ToString().Replace('/', '\\')); 
+0

+1 Спасибо! Это работает, но как мы можем рассматривать символ \ как escape-символ? Я пробовал это (слэши должны быть заменены другим способом): Строковый вход = @ "... src =" "/ Foo/бар "" .. "; Строковый вывод = Regex.Replace (input, "src = \" [^ \ "] * \" ", (m) => m.ToString(). Заменить ('/', '\\')); в output = "... src = \" \\ foo \\ bar \ ".." – Zesty

+1

@ HappyCoder4U: Разве это не тот результат, который вы хотели? =) Эти двойные обратные пространства есть потому, что один из них был бы побегом char. Console.Write (output) приведет к '..src =" \ foo \ bar "...' – Jens

+0

К сожалению, вы правы. Я был просто смущен :) Спасибо за помощь. – Zesty

1

ли ваша строка всегда заканчивается с закрытием "Если нет?! Удалить $

+0

OP также неправильно использует '^'. – Jens

Смежные вопросы