2016-04-25 5 views
0

В VB.NET/C# .NET хотите заменить все "% 0D% 0A% 0D% 0A" в строке с% 0D% 0A». Я попыталсяЗамена всех шаблонов в строке

stringtempA = Regex.Replace(stringtemp, "%0D%0A%0D%0A", "%0D%0A") 
    stringtempA = Strings.Replace(stringtemp, "%0D%0A%0D%0A", "%0D%0A") 

В stringtemp имеется несколько вхождений. Например, может быть «% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A ", и заменяется только первое вхождение. Как это делается с командой Replace? Является ли проблема вызванной знаком процента? Я так как я их избегаю?

+0

Что ваш ожидаемый результат для '% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A % 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A'? –

+0

Используйте 'stringtempA = Regex.Replace (stringtemp," (% 0D% 0A) (% 0D% 0A) + "," $ 1 ")' –

+0

К сожалению, это не был хорошим примером. В строке я хочу, чтобы все два события были сведены к одному. % 0D% 0A% 0D% 0A изменено на% 0D% 0A – Ricardo

ответ

1

Используйте функцию замены из самой строковой переменной.

C#

stringtempA = stringtemp.Replace(@"%0D%0A%0D%0A", @"%0D%0A"); 

vb.net

stringtempA = stringtemp.Replace("%0D%0A%0D%0A", "%0D%0A") 
+0

Спасибо. Интересно. Это работает на C#, но не на VB.net. Это должно быть что-то с поведением Replace по умолчанию, а знак процента в строке должен быть экранирован? – Ricardo

+0

@ sign выходит из всех специальных символов в версии C#. Я редактировал версию vb.net –