Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
12 / 12 / 2
Регистрация: 22.04.2010
Сообщений: 609
1

Ошибка с регулярными выражениями

13.11.2010, 17:52. Просмотров 790. Ответов 7
Метки нет (Все метки)


Нужно вывести значение, но почему-то ничего не выводится и ошибок компилятор не дает

C#
1
2
3
4
5
6
7
            string html3 = new StreamReader(responsea.GetResponseStream(),
                                Encoding.UTF8).ReadToEnd();
            string pattern = @"\""(\w*)\""name=\""auth_key\"" value=\""(\w*)\"" />
<input type=\""hidden\"" name=\""fast_reply_used\""\""(\w*)\""";
            Regex r = new Regex(pattern);
            Match m = r.Match(html3);
            Console.WriteLine(m.Groups[2].ToString());
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2010, 17:52
Ответы с готовыми решениями:

Небольшая ошибка в логике моего алгоритма с регулярными выражениями
Всем привет. В общем суть небольшого алгоритма: 1. Открываем файлик; 2. Читаем его; 3. Находим...

Парсинг регулярными выражениями
Здравствуйте, не могу написать программу, у меня вот такая ошибка выходит:Форматы URI не...

Помощь с регулярными выражениями
string pattern = @&quot;\s* (W5)\s(R3)\s(R3)\s(I)\d(R5)\s(I)\d&quot;; string input = &quot; W5 R3 R3...

Работа с регулярными выражениями
Привет всем. Имеются куча сотен ссылок с таким шаблоном ...

7
581 / 368 / 63
Регистрация: 22.07.2009
Сообщений: 875
Записей в блоге: 4
13.11.2010, 18:32 2
Цитата Сообщение от koc94ok Посмотреть сообщение
Нужно вывести значение, но почему-то ничего не выводится и ошибок компилятор не дает
Значит в парсируемой строке просто нет искомого выражения.

Скорее всего потому что у вас неявно используется \n : Вы используете строку @"" и при этом перенесли 2ю часть поиского выражения на новую строку.

Попробуйте:
C#
1
string pattern = @"\""(\w*)\""name=\""auth_key\"" value=\""(\w*)\"" /><input type=\""hidden\"" name=\""fast_reply_used\""\""(\w*)\""";
0
12 / 12 / 2
Регистрация: 22.04.2010
Сообщений: 609
13.11.2010, 19:01  [ТС] 3
Цитата Сообщение от sigmov Посмотреть сообщение
Значит в парсируемой строке просто нет искомого выражения.
Есть, ибо отдельно вывожу строку там все есть что нужно, скорей искомое выражение кривое
Цитата Сообщение от sigmov Посмотреть сообщение
Вы используете строку @"" и при этом перенесли 2ю часть поиского выражения на новую строку.
Переносил не я, а так было именно в строке между хмтл тегами должен быть перенос />тут<
0
581 / 368 / 63
Регистрация: 22.07.2009
Сообщений: 875
Записей в блоге: 4
13.11.2010, 19:15 4
Цитата Сообщение от koc94ok Посмотреть сообщение
Есть, ибо отдельно вывожу строку там все есть что нужно, скорей искомое выражение кривое

Переносил не я, а так было именно в строке между хмтл тегами должен быть перенос />тут<
Скиньте мне саму строку - гляну....
0
12 / 12 / 2
Регистрация: 22.04.2010
Сообщений: 609
13.11.2010, 19:38  [ТС] 5
Цитата Сообщение от sigmov Посмотреть сообщение
Скиньте мне саму строку - гляну....
Скинул в личку
0
581 / 368 / 63
Регистрация: 22.07.2009
Сообщений: 875
Записей в блоге: 4
13.11.2010, 20:05 6
У меня получилось такое чудо:
C#
1
string pattern = "<input\\s+type=\"hidden\"\\s+name=\"auth_key\"\\s+value=\"(?<auth_key>[^\"]*)\"\\s+/>\\s+<input\\s+type=\"hidden\"\\s+name=\"fast_reply_used\"\\s+value=\"(?<fast_reply_used>[^\"]*)\"\\s+/>";
И советую поставить флажек
C#
1
RegexOptions.IgnoreCase
1
12 / 12 / 2
Регистрация: 22.04.2010
Сообщений: 609
13.11.2010, 20:54  [ТС] 7
Вывел вот так
C#
1
2
3
            
       string[] msv = stroke.Split(new Char[] { '"' });
       label2.Text = msv[1501];
и забил на регулярные выражения... слишком много мороки
0
12 / 12 / 2
Регистрация: 22.04.2010
Сообщений: 609
15.11.2010, 16:30  [ТС] 8
получилось как у sigmov! спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2010, 16:30

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

Задание с регулярными выражениями.
В задании пользователь вводит слова через пробел и те слова в которых Есть в середине(не первая и...

Вырезка между регулярными выражениями
Добрый день, есть строка , необходимо в этой строке вырезать информацию между двумя регулярными...

Распарсить html регулярными выражениями
Сломал себе всю голову. Причина в том что с регулярными выражениями до сегодня вообще не...

Парсинг html регулярными выражениями
Хочу пропарсить html документом регулярками. Вот документ : ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.