Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 22.08.2013
Сообщений: 14

Сложности с Regex: не выводится результат поиска

21.05.2014, 19:14. Показов 1918. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть вот такой код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
System.Net.WebRequest myrequest = System.Net.WebRequest.Create("http://yandex.ru");
            System.Net.WebResponse myresponse = myrequest.GetResponse();
 
            StreamReader sr = new StreamReader(myresponse.GetResponseStream());
            string textreg = sr.ReadToEnd();
            string pattern = @"http://\w.+\.\w*\S+\b";
            string input = string.Empty;
 
            Regex rgx = new Regex(pattern);
            MatchCollection matches = rgx.Matches(input);
            richTextBox1.Text += (input);
            foreach (Match match in matches)
            richTextBox1.Text = ("   " + match.Value);
Но в richtextbox не выводится результат поиска, в каких местах я накосячил?

Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.05.2014, 19:14
Ответы с готовыми решениями:

Создание формы поиска на сайте. Почему не выводится результат поиска при вводе символов в поле поиска?
Добрый день! Создаю форму поиска с всплывающими подсказками. Попробую, выложить строки кода, имеющие отношение к сути проблемы и темы. ...

Результат выводится в поле но не выводится в span
<div class="hot_predlojenia"> <input type="checkbox" name="hot_home_page" id="hot_home_page" value="a" onclick="showMe(this)"> <label...

Не закрывать результат поиска при нажатии на этот самый результат
Добрый вечер, суть задачи такова: при нажатии на input становится видимым элемент #result, при нажатии в пределах элемента #box ничего не...

7
Life Builder
 Аватар для sk007
531 / 496 / 374
Регистрация: 12.01.2011
Сообщений: 1,755
21.05.2014, 21:15
Лучший ответ Сообщение было отмечено nikulinlg как решение

Решение

nikulinlg, а что вам оттуда нужно втащить

Добавлено через 15 минут
Цитата Сообщение от nikulinlg Посмотреть сообщение
C#
1
2
3
string input = string.Empty;
Regex rgx = new Regex(pattern);
MatchCollection matches = rgx.Matches(input);//Здесь input пуста
у вас переменная input пуста что вам должна вернуть regex, из пустой строки.
Скорее всего это должна быть так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
System.Net.WebRequest myrequest = System.Net.WebRequest.Create("http://yandex.ru");
            System.Net.WebResponse myresponse = myrequest.GetResponse();
 
            StreamReader sr = new StreamReader(myresponse.GetResponseStream());
            string textreg = sr.ReadToEnd();
            richTextBox1.Text = textreg;
            string pattern = @"http://\w.+\.\w*\S+\b";
 
 
/*            string input = string.Empty;
            richTextBox1.Text += (input);//Не совсем понятные строки */
 
            Regex rgx = new Regex(pattern);
            MatchCollection matches = rgx.Matches(textreg);
 
            richTextBox1.Text += "\r\n";
            foreach (Match match in matches)
                richTextBox1.Text += ("   " + match.Value);
0
0 / 0 / 1
Регистрация: 22.08.2013
Сообщений: 14
22.05.2014, 00:06  [ТС]
sk007, спасибо за ответ. Мне нужны все ссылки типа: "http://somelink.somedomen"

Добавлено через 54 минуты
попробовал вот так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private void button1_Click(object sender, EventArgs e)
        {
 
                webBrowser1.Navigate("http://yandex.ru");
 
        }
 
        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            HtmlElementCollection links = webBrowser1.Document.Links;
            string pattern = @"http://\w.+\.\w*\S+\b";
            Regex rgx = new Regex(pattern);
            MatchCollection matches = rgx.Matches(Convert.ToString(links));
            foreach (HtmlElement link in links)
            {
                listBox1.Items.Add(link.OuterHtml);
                foreach (Match match in matches)
                {
                    listBox1.Items.Add("   " + match.Value);
                }
            }
        }
ничего не получается.. простите меня за мою тупорылость, второй день за программированием)
0
Life Builder
 Аватар для sk007
531 / 496 / 374
Регистрация: 12.01.2011
Сообщений: 1,755
22.05.2014, 06:56
Лучший ответ Сообщение было отмечено nikulinlg как решение

Решение

nikulinlg, а такой подойдет?
C#
1
2
3
4
5
6
7
8
9
10
11
12
System.Net.WebRequest myrequest = System.Net.WebRequest.Create("http://yandex.ru");
            System.Net.WebResponse myresponse = myrequest.GetResponse();
 
            StreamReader sr = new StreamReader(myresponse.GetResponseStream());
            string textreg = sr.ReadToEnd();
            string pattern = @"href=""(.*?)""\s?>\b";
            
            Regex rgx = new Regex(pattern, RegexOptions.Singleline);
            MatchCollection matches = rgx.Matches(textreg);
 
            foreach (Match match in matches)
                richTextBox1.Text += ("\r\n" + Regex.Match(match.Value, @"""(http://\S*?)""").Groups[1].Value);
1
0 / 0 / 1
Регистрация: 22.08.2013
Сообщений: 14
22.05.2014, 18:36  [ТС]
sk007, отлично, спасибо!
И если можно еще один вопрос, у меня результат поиска выводится на форму в RichTextBox1, как мне сделать, чтобы форма не "висла" пока выполняется запрос, его обработка и вывод в RichTextBox1?
0
Life Builder
 Аватар для sk007
531 / 496 / 374
Регистрация: 12.01.2011
Сообщений: 1,755
22.05.2014, 20:08
Цитата Сообщение от nikulinlg Посмотреть сообщение
как мне сделать, чтобы форма не "висла" пока выполняется запрос, его обработка и вывод в RichTextBox1?
Делайте обработку в новом потоке.
0
0 / 0 / 1
Регистрация: 22.08.2013
Сообщений: 14
22.05.2014, 23:55  [ТС]
Цитата Сообщение от sk007 Посмотреть сообщение
Делайте обработку в новом потоке.
Обработку регулярных выражений? Или всё, начиная от подключения по url и заканчивая выводом?
0
Life Builder
 Аватар для sk007
531 / 496 / 374
Регистрация: 12.01.2011
Сообщений: 1,755
23.05.2014, 06:41
nikulinlg,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void WebText()
        {
            System.Net.WebRequest myrequest = System.Net.WebRequest.Create("http://yandex.ru");
            System.Net.WebResponse myresponse = myrequest.GetResponse();
 
            StreamReader sr = new StreamReader(myresponse.GetResponseStream());
            string text = sr.ReadToEnd();
 
            string pattern = @"href=""(.*?)""\s?>\b";
 
            Regex rgx = new Regex(pattern, RegexOptions.Singleline);
            MatchCollection matches = rgx.Matches(text);
 
            foreach (Match match in matches)
                richTextBox1.Invoke(new Action(() => richTextBox1.Text += "\r\n" + Regex.Match(match.Value, @"""(http://\S*?)""").Groups[1].Value));
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Thread t = new Thread(WebText);
            t.Start();
        }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.05.2014, 06:41
Помогаю со студенческими работами здесь

Regex для поиска подстроки
Доброго времени суток. Помогите пожалуйста написать regex для поиска нужной информации в строке. Мне нужно убедиться в том, что...

Chrome перенаправление страницы поиска при клике на результат поиска
Странное поведение Chrome, кроме как записав видео, не нашел способа это лучше продемонстрировать. История такова: когда задаю поиск по...

Почему Regex.Match() возвращает пустой результат?
Есть вот такой код : Regex rx = new Regex(@"send(.*)ass\\"); Regex rxe = new Regex(@"d(.*)ta"); Match match =...

Regex. Паттерн для поиска параметров с возможными пробелами в именах
Есть что-то вроде простого выражения "питQ = питQ AND питQ = 0" где пит - это параметр. Вообще вид параметра довольно сложен (мало кому...

Написать паттерн Regex для поиска первой непарной закрывающейся скобки
Почитал про "сбалансированные группы" "]http://msdn.microsoft.com/en-us/library/bs2twtah.aspx#balancing_group_definition] ...очень тяжело...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru