Замена regex C#

  • Автор темы Автор темы bizzon
  • Дата начала Дата начала

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 120
Реакции
135
Баллы
63
Есть просто замена текста:
Код:
Развернуть Свернуть Копировать
string text = project.Variables["text"].Value; // переменная с текстом
text = text
    .Replace("11", "успешно")
    .Replace("22", "успешно2")
    .Replace("33", "успешно3")
    .Replace("44", "успешно4");
return text;

А если искать не текст, а Regex, то как?
 
  • Оценить
Реакции: kagorec
C#:
Развернуть Свернуть Копировать
string str = "тесттекст";
return Regex.Replace(str, "текст", "test");
 
  • Оценить
Реакции: bizzon и one
C#:
Развернуть Свернуть Копировать
string str = "тесттекст";
return Regex.Replace(str, "текст", "test");
Спасибо, а можно это сделать как в примере выше для множественной замены?
 
  • Оценить
Реакции: bezvozni
как в примере выше
Вот неплохой пример:
C#:
Развернуть Свернуть Копировать
Dictionary<string,string> map = new Dictionary<string,string>()
{
    {"11", "успешно"},
    {"22", "успешно2"},
    {"33", "успешно3"},
    {"44", "успешно4"},
};

string str = "44112233";
Regex regex = new Regex(string.Join("|",map.Keys));
string newStr = regex.Replace(str, m => map[m.Value]);
 
Последнее редактирование:
  • Оценить
Реакции: bizzon
С таким примером ... ногу сломать можно, будем изучать чуть позже.
 
А есть возможность реализовать

если содержит "X" - вернуть "Y",
если содержит "A" - вернуть "B",
если содержит "3" - вернуть "7"..
итд..

?
 
на JS:
Код:
Развернуть Свернуть Копировать
var a='{-Variable.input-}';
(function(a) {
switch(a) {
case (a.match(/user/) || {}).input: return '1'; break;
case (a.match(/location/) || {}).input: return '2'; break;
case (a.match(/age/) || {}).input: return '3'; break;
default: return '';
}})(a)
в скобки a.match() можно вставлять любой regex по идеи
 
Последнее редактирование:

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)