Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
p_r_a_g_m_a
112 / 64 / 23
Регистрация: 08.03.2012
Сообщений: 211
Завершенные тесты: 1
1

Регулярные выражения. Разбор URL

21.10.2014, 21:16. Просмотров 1794. Ответов 4
Метки нет (Все метки)

Пытаюсь разобрать URL и получить значения переменных:
HTML5
1
https://oauth.vk.com/blank.html#access_token=TOKEN&expires_in=TIME&user_id=UID
Составил регулярное выражение:
C#
1
2
3
4
Match m = Regex.Match(URL, @"(https://(.*))#access_token=(?<access_token>(.*))&expires_in=(?<expires_in>(.*))&ser_id=(?<ser_id>(.*))");
string access_token = m.Groups["access_token"].Value;
string expires_in = m.Groups["expires_in"].Value;
string ser_id = m.Groups["ser_id"].Value;
В результате получаю пустые строки.

Подскажите, в чем проблема?
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2014, 21:16
Ответы с готовыми решениями:

Регулярные выражения - вывод сообщения об ошибке при нахождении в строке выражения, начинающегося с цифры
Нужно чтобы при нахождении в строке выражения начинающегося с цифры появлялось сообщение об...

Разбор выражения
Помогите понять как работает это регулярное выражение @&quot;(?x) ( &quot;&quot; (?&gt; (?&lt;=@.) (?&gt;+|&quot;&quot;&quot;&quot;)* ...

Разбор арифметического выражения
Друзья, требуется написать программу на С#, которая работала бы следующим образом: пользователь...

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

Регулярные выражения
Здравствуйте, подскажите, как &quot;сказать&quot; регулярному вырожению, что определенный набор символов -...

4
karaulov6
23 / 23 / 6
Регистрация: 23.03.2013
Сообщений: 243
Завершенные тесты: 2
21.10.2014, 21:29 2
Лучший ответ Сообщение было отмечено p_r_a_g_m_a как решение

Решение

http://regexhero.net/ для проверки регулярных выражений

Вот так будет правильно:
(https://(.*?))#access_token=(?<access_token>(.*?))&expires_in=(?<expires_in>(.*?))\&user_id\=(?<ser_id>(.*))
1
p_r_a_g_m_a
112 / 64 / 23
Регистрация: 08.03.2012
Сообщений: 211
Завершенные тесты: 1
21.10.2014, 21:34  [ТС] 3
Цитата Сообщение от karaulov6 Посмотреть сообщение
Вот так будет правильно:
(https://(.*?))#access_token=(?<access_token>(.*?))&expires_in=(?<expires_in>(.*?))\&user_id\=(?<ser_id>(.*))
Огромное спасибо. А то голову себе уже сломал =)
0
Metall_Version
2126 / 1263 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
Завершенные тесты: 2
21.10.2014, 22:10 4
есть целый класс Uri кстати, с ним удобно парсить урлки
1
kolorotur
Эксперт .NET
12314 / 9800 / 2516
Регистрация: 17.09.2011
Сообщений: 16,671
Завершенные тесты: 1
21.10.2014, 22:49 5
C#
1
2
3
4
5
6
var url = new Uri("https://oauth.vk.com/blank.html#access_token=TOKEN&expires_in=TIME&user_id=UID");
var query = HttpUtility.ParseQueryString(url.Query);
 
string access_token = query["access_token"];
string expires_in = query["expires_in"];
string ser_id = query["ser_id"];
2
21.10.2014, 22:49
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2014, 22:49

Регулярные*выражения
&lt;td&gt;USD&lt;/td&gt; &lt;td&gt;1&lt;/td&gt; &lt;td&gt;Доллар США&lt;/td&gt; &lt;td&gt;64,5693&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;978&lt;/td&gt; ...

Регулярные выражения в C#
Здравствуйте уважаемые программисты, я столкнулся с задачей нужно написать регулярное выражение,...

Регулярные выражения в c#
Здравствуйте уважаемые программисты вот передо мной стоит задача написать регулярное выражение,...


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

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

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