Убрать ошибку Regex если не нашел совпадений C#

b1zar

Client
Регистрация
29.06.2019
Сообщения
107
Благодарностей
65
Баллы
28
Доброго времени суток. В одном кубике хочу уместить несколько регулярок, но проблема в том, что не всегда значение присутствует и поэтому если Regex не нашел значений, то он выходит по ошибке. Что нужно сделать, что бы он возвращал в переменную 0, когда не нашел значение и не выходил по ошибке?

UPD: Проблему решил, использовал не ту конструкцию Regex на С#. Если кому то пригодиться вот код:
C#:
var text = "Твой текст";
var pattern = "Твоя Регулярка";
project.Variables["Login"].Value = System.Text.RegularExpressions.Regex.Match(text, pattern).Value;
if (project.Variables["Твоя переменная"].Value == ""){
    project.Variables["Твоя переменная"].Value ="0";}
 
Последнее редактирование:

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 089
Благодарностей
126
Баллы
63
Кубиком, обычно, когда несколько регулярок, делаю через ИЛИ (Regex)|(Regex)|(Regex) удобно с галочкой по "ошибке"
 

afk

Client
Регистрация
28.11.2016
Сообщения
98
Благодарностей
25
Баллы
18
C#:
string text = "my text";
string pattern1 = "a.*";
string pattern2 = "b.*";
string pattern3 = "c.*";


Regex[] regexes = {new Regex(pattern1),
                   new Regex(pattern2),
                   new Regex(pattern3)};

for(int i=0;i<regexes.Length;i++){

    string result = regexes[i].Match(text).ToString(); 

    if(result!="")
        return result;

    if(i==regexes.Length-1)
        return 0;
}
 
  • Спасибо
Реакции: daVinchi

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