Как получить доступ к переменным внутри операторов регулярных выражений? c # 4.0

#c# #regex #string #foreach #statements

#c# #регулярное выражение #строка #foreach #инструкции

Вопрос:

Я искал везде, но ни за что на свете не могу понять, как сделать так, чтобы переменная внутри оператора регулярного выражения была доступна из другого места.

Если бы кто-нибудь мог помочь, это было бы потрясающе! Вот код:

 string strRegex = @"(regexstring)";

        RegexOptions myRegexOptions = RegexOptions.Multiline;
        Regex myRegex = new Regex(strRegex, myRegexOptions);
        string strTargetString = str9

        foreach (Match myMatch in myRegex.Matches(strTargetString))
        {
            if (myMatch.Success)
            {
  

Вот проблема -> . . ………………
строка str5 = myMatch.toString() — Строка();

             }
  

webBrowser1.navigate(str5); <— Это не работает

Как мне получить доступ к строке str5? вне цикла? Пожалуйста, помогите

Ответ №1:

Если вы хотите получить доступ к переменной вне цикла, она должна быть объявлена вне цикла. Однако затем вам необходимо рассмотреть:

  • Что вы хотите, чтобы произошло, если не было никаких совпадений?
  • Что вы хотите, чтобы произошло, если было несколько совпадений?

Вам нужно будет присвоить ему переменную вне цикла, так как в противном случае, когда вы попытаетесь прочитать переменную, компилятор пожалуется, потому что она определенно не назначена.

Ответ №2:

Возможно, вы хотите:

 string str5 = myMatch.Value;
webBrowser1.navigate(str5);