Как в одном кубике C# добавить несколько регулярок

yreha

Client
Регистрация
19.11.2015
Сообщения
125
Благодарностей
3
Баллы
18
Допустим есть

string Test = project.Variables["src"].Value;
string regexTest = System.Text.RegularExpressions.Regex.Replace(Test, @"%2f", "/");
return regexTest;

надо добавить
string regexTest = System.Text.RegularExpressions.Regex.Replace(Test, @"%3f", "?");
 

yreha

Client
Регистрация
19.11.2015
Сообщения
125
Благодарностей
3
Баллы
18
обработка одной переменной src
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
сложно понять, зачем здесь замена по регуляректе, тут и обычная замена подойдет. Более того, похоже ты просто хочешь декодировать ссылку, и для этого есть метод в кубике обработки текста
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
Код:
string Test = project.Variables["src"].Value;
string regexTest = System.Text.RegularExpressions.Regex.Replace(Test, @"%2f", "/");
regexTest = System.Text.RegularExpressions.Regex.Replace(Test, @"%3f", "?");
return regexTest;
 
  • Спасибо
Реакции: yreha

yreha

Client
Регистрация
19.11.2015
Сообщения
125
Благодарностей
3
Баллы
18
Спасибо а еще у меня идут несколько подряд кубиков C# их можно както обеденить в один тоесть общий код?
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Спасибо а еще у меня идут несколько подряд кубиков C# их можно както обеденить в один тоесть общий код?
Всё можно, главное переменные свяжи правильно.
P.S. у меня свой вопрос: как вернуться к прошедшим действиям в С#, есть ли у кого-то примеры, а то я циклы большие хочу реализовать с выполнением комплекса действий по множеству раз в зависимости от условий и возвращаться к старым действиям придется.
 
  • Спасибо
Реакции: yreha

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Всё можно, главное переменные свяжи правильно.
P.S. у меня свой вопрос: как вернуться к прошедшим действиям в С#, есть ли у кого-то примеры, а то я циклы большие хочу реализовать с выполнением комплекса действий по множеству раз в зависимости от условий и возвращаться к старым действиям придется.
http://professorweb.ru/my/csharp/charp_theory/level3/3_15.php
http://professorweb.ru/my/csharp/charp_theory/level3/3_16.php
 
  • Спасибо
Реакции: yreha

yreha

Client
Регистрация
19.11.2015
Сообщения
125
Благодарностей
3
Баллы
18
Чтото у меня не получаеться нужно забрать значение регуляркой и перевести в урл енкоде у меня два кубика как сделать один

вот регулярка


var resultHttpGet = project.Variables["get1"].Value;

if (String.IsNullOrEmpty(resultHttpGet))
throw new Exception("не смогли загрузить страницу");
var pattern = @"(?<=<a\ href="").*(?="">here)";
var matches = Regex.Matches(resultHttpGet, pattern).Cast<Match>().Select(match => match.Value).ToList();;
return string.Join("\r\n",matches);


Записываю в переменную src

здесь урл енкод


var url = project.Variables["src"].Value;
var data = System.Web.HttpUtility.UrlDecode(url);
return data;


Можно их обеденить спасибо!
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Код:
string Test = project.Variables["src"].Value;
string regexTest = System.Text.RegularExpressions.Regex.Replace(Test, @"%2f", "/");
regexTest = System.Text.RegularExpressions.Regex.Replace(Test, @"%3f", "?");
return regexTest;
а зачем так, если можно так
string regexTest = System.Text.RegularExpressions.Regex.Replace(Test, @"%2f", "/").Replace(Test, @"%3f", "?");
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
а зачем так, если можно так
string regexTest = System.Text.RegularExpressions.Regex.Replace(Test, @"%2f", "/").Replace(Test, @"%3f", "?");
Потому что так не работает т.к. Replace это независимый метод поиска и замены обычного текста, который принимает 2 аргумента.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
а зачем так, если можно просто юрлдекод прописать?
пропёрся я значит )) и не заметил что оказывается ещё и меньшей строкой можно было обойтись, не прочитал честно что именно ТС хотел
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Потому что так не работает т.к. Replace это независимый метод поиска и замены обычного текста, который принимает 2 аргумента.
Это кто такое сказал ???

P.S. Ты реплэсить хоть +100500 раз можешь в одной строке кода
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
А как в С# можно заменить реплейс, если у тебя не 10 замен, а штук 50 разнообразных и они записаны в формате "1/текст1, 2/текст2 ..., 50/текст50", где заменяется текст "1" на "текст 1" и т.д.?
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
два аргумента это когда так например думаю будет выглядит
А как в С# можно заменить реплейс, если у тебя не 10 замен, а штук 50 разнообразных и они записаны в формате "1/текст1, 2/текст2 ..., 50/текст50", где заменяется текст "1" на "текст 1" и т.д.?
Тут идёт разговор о строках а не о файлах, а тоесть даже о теле
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
А как в С# можно заменить реплейс, если у тебя не 10 замен, а штук 50 разнообразных и они записаны в формате "1/текст1, 2/текст2 ..., 50/текст50", где заменяется текст "1" на "текст 1" и т.д.?
я не знаю, есть ли аналоги, куда просто массивы передаются, но как минимум можно использовать обычный реплейс в цикле
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
А как в С# можно заменить реплейс, если у тебя не 10 замен, а штук 50 разнообразных и они записаны в формате "1/текст1, 2/текст2 ..., 50/текст50", где заменяется текст "1" на "текст 1" и т.д.?
ну или если тебя устраивает что тебе надо 50 экшешенов замены создать, то я тогда в шоке что там за проект, ты всегда можешь подобрать замену которая урежет не одно действие а может бюльше
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
Это кто такое сказал ???

P.S. Ты реплэсить хоть +100500 раз можешь в одной строке кода
Блин, реплейсить то можно +100500 раз, но содержать он может 2 аргумента - ЧТО МЫ МЕНЯЕМ и НА ЧТО МЫ МЕНЯЕМ, а у Вас их там 3. Посмотрите внимательнее.
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Блин, реплейсить то можно +100500 раз, но содержать он может 2 аргумента - ЧТО МЫ МЕНЯЕМ и НА ЧТО МЫ МЕНЯЕМ, а у Вас их там 3. Посмотрите внимательнее.
Там переменная указана и 2 аргумента в скобках
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
что дали то и скопировал )))))))
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
Там переменная указана и 2 аргумента в скобках
Я извиняюсь, но у вас обоих видимо что-то со зрением:
а зачем так, если можно так
string regexTest = System.Text.RegularExpressions.Regex.Replace(Test, @"%2f", "/").Replace(Test, @"%3f", "?");
Специально выделил жирным.
 
  • Спасибо
Реакции: doc

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Я извиняюсь, но у вас обоих видимо что-то со зрением:


Специально выделил жирным.
ещё раз повторюсь не заметив что там три аргумента просто скопипастил, ты хоть мне смс на телефон пришли но реплэйсить можно милиард рад раз в одной строке, переправить эту строку думаю не составит хлопот
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
есть одна переменая, и реплэйсь её пока она не посинеет ))
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Блин, реплейсить то можно +100500 раз, но содержать он может 2 аргумента - ЧТО МЫ МЕНЯЕМ и НА ЧТО МЫ МЕНЯЕМ, а у Вас их там 3. Посмотрите внимательнее.
Так 3 аргумента, а С# в коде позволяет использовать конструкцию System.Text.RegularExpressions.Regex.Replace(переменная , "что меняем", "на что меняем")
в Replace передается 2 параметра. 3 передается в Regex.Replace
Ну это я и имел ввиду, может просто неправильно понял меня или я не совсем доходчиво объяснил.
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
ещё раз повторюсь не заметив что там три аргумента просто скопипастил, ты хоть мне смс на телефон пришли но реплэйсить можно милиард рад раз в одной строке, переправить эту строку думаю не составит хлопот
Вы издеваетесь надомной? :-)
Я хоть где-то упомянул, что ограниченно количество реплейсов?

Я утверждаю то, что:
1. System.Text.RegularExpressions.Regex.Replace
2. .Replace

Это совершенно разные методы. Речь шла о реплейсе регулярками, а у в Вашем примере всего один метод System.Text.RegularExpressions.Regex.Replace, а не два, как должно быть.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Regex.Replace(переменная , "что меняем", "на что меняем")
 

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