Здравствуйте, dvd00, Вы писали:
D>Здравствуйте!
D>у меня есть такая строка: <a href='abc.aspx?param1=value1'>123456</a>. Я хочу с помощью регулярного выражения выщемить 123456. Вот как я это делаю сейчас:
D>D>string sValue = "<a href='abc.aspx?param1=value1'>123456</a>";
D>Regex regExp = new Regex(@"<[^>]*>([^<]*)</[^>]*>");
D>MatchCollection matches = regExp.Matches(sValue);
D>string s = matches[1].ToString();
D>//string s = matches[0].ToString(); - возвращает всю строку.
D>
D>При таком подходе matches[1].ToString() падает с исключением выхода за границы массива, т.е. регулярное выражение не выщемливает нужную мне подстроку. Может мне кто-нибудь пояснить, где я ошибаюсь в паттерне регулярного выражения?
D>Спасибо за потраченное время
У тебя в matches будет всего 1 match. Вот в нём и смотри вторую группу, если нужно “123456”. Вот как будет выглядеть правильно твой пример:
string sValue = "<a href='abc.aspx?param1=value1'>123456</a>";
Regex regExp = new Regex(@"<[^>]*>([^<]*)</[^>]*>");
MatchCollection matches = regExp.Matches(sValue);
string s = matches[0].Groups[1].ToString();