Re[2]: Нужен хелп с RegEx...
От: dvd00  
Дата: 25.08.05 14:35
Оценка:
Здравствуйте, xinta4, Вы писали:

X>Здравствуйте, 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>>Спасибо за потраченное время


X>У тебя в matches будет всего 1 match. Вот в нём и смотри вторую группу, если нужно “123456”. Вот как будет выглядеть правильно твой пример:

X>
X>string sValue           = "<a href='abc.aspx?param1=value1'>123456</a>";
X>Regex regExp            = new Regex(@"<[^>]*>([^<]*)</[^>]*>");
X>MatchCollection matches = regExp.Matches(sValue);
X>string s = matches[0].Groups[1].ToString();
X>


Вот это я понимаю — вот это совет! "Все судьи 5 баллов ровно!" (с) А.В.Масляков.
Спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.