Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
zme9
94 / 67 / 23
Регистрация: 22.09.2013
Сообщений: 622
1

Вытянуть значение из строки

10.08.2014, 18:00. Просмотров 974. Ответов 24
Метки нет (Все метки)

Приветствую всех.
Есть строка
C#
1
{"acces_token" : "token" ,"expires_in":0,"user_id":id}
Нужно вытянуть значение , в слове token.
Там примерно такое 23sajb32y1uhdjsahdjh38uy4r38897df128fsfsadas.
Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.08.2014, 18:00
Ответы с готовыми решениями:

Как вытянуть элементы из сложной строки?
Здраствуйте! Подскажите, пожалуйста, как лучше сделать следующую штуку:...

Вытянуть из строки текст между определенными символами
Всем привет, ранее писал на делфи, и вот начал учить c# Столкнулся с такой...

Возможно ли вытянуть значение нужной строки из DataTable
Возможно ли вытянуть значение нужной строки из data table? Например, DataSet...

Вытянуть код
Вообщем, дорогие программисты, мне нужна помощь. Из exe файла, который...

Вытянуть данные из SqlDataSource
Доброго времени суток! Есть DropDownList DataTextField="Name" берущий свои...

24
Tirenta
39 / 39 / 13
Регистрация: 09.07.2014
Сообщений: 116
10.08.2014, 18:15 2
C#
1
2
3
4
5
6
7
8
9
10
11
static void Main(string[] args)
        {
            string stroka = @"acces_token : 23sajb32y1uhdjsahdjh38uy4r38897df128fsfsadas ,expires_in:0,user_id:id";
 
            string pattern = @"acces_token : (\d+\w+\S+) ,";
 
            Match m = Regex.Match(stroka, pattern);
 
            Console.WriteLine(m.Groups[1].Value);
            Console.ReadLine();
        }
Ты такую строку имеешь ввиду? Не знаю как в регулярке и строке ставить ковычки, но если ты парсишь, то можно кавычки заменить на точку в регулярном выражении - по крайней мере я так делаю всегда.

Добавлено через 4 минуты
C#
1
string pattern = @"acces_token *: *(\d+\w+\S+) *,"
Еще такой можно написать, хуже не будет. Звездочки в выражении означают, что там могут быть пробелы, то есть они там не обязательны, предыдущая строка просто - идеальная, в том смысле, что ты точно знаешь, что она не будет меняться.
0
XRoy
861 / 711 / 305
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
10.08.2014, 18:18 3
zme9,
Если выражение в кавычках то паттерн такой
C#
1
@"""acces_token""[\s:]+""([\d\w]+)"""
1
zme9
94 / 67 / 23
Регистрация: 22.09.2013
Сообщений: 622
10.08.2014, 18:22  [ТС] 4
Tirenta, ничего не выводит
0
rattrapper
foo();
864 / 568 / 221
Регистрация: 03.07.2013
Сообщений: 1,547
Записей в блоге: 2
10.08.2014, 18:22 5
Цитата Сообщение от Tirenta Посмотреть сообщение
Не знаю как в регулярке и строке ставить ковычки

Не по теме:

1) кАвычки
2) @"""acces_token""" или "\"acces_token\""

1
XRoy
861 / 711 / 305
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
10.08.2014, 18:23 6
zme9,
Вы показали бы ту строку которую надо распарсить, ничего не меняя
0
zme9
94 / 67 / 23
Регистрация: 22.09.2013
Сообщений: 622
10.08.2014, 18:26  [ТС] 7
Вот
Нужно получить всё что после acces_token " : " вот здесь "
0
Миниатюры
Вытянуть значение из строки  
Tirenta
39 / 39 / 13
Регистрация: 09.07.2014
Сообщений: 116
10.08.2014, 18:31 8
C#
1
2
3
4
5
6
7
8
string stroka = @"""access_token"":""23sajb32y1uhdjsahdjh38uy4r38897df128fsfsadas"",expires_in:0,user_id:id";
 
            string pattern = @"access_token"":""([\w\d\S]+)"",";
 
            Match m = Regex.Match(stroka, pattern);
 
            Console.WriteLine(m.Groups[1].Value);
            Console.ReadLine();
Ну так попробуй
0
zme9
94 / 67 / 23
Регистрация: 22.09.2013
Сообщений: 622
10.08.2014, 18:34  [ТС] 9
Tirenta, не выводит , просто переводит на новую строку и всё.

Добавлено через 53 секунды
З.Ы может быть я кривой
C#
1
2
3
4
5
6
7
8
9
10
 HttpRequest req = new HttpRequest();
            HttpResponse resp;
            req.Cookies = new CookieDictionary();
            resp = req.Get("https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username=****&password=*****");
            Console.WriteLine(resp);
            string res = resp.ToString();
            string pattern = @"access_token"":""([\w\d\S]+)"",";
            Match m = Regex.Match(res, pattern);
            Console.WriteLine(m.Groups[1].Value);
            Console.ReadLine();
0
XRoy
861 / 711 / 305
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
10.08.2014, 18:34 10
zme9,
Попробуйте такой вариант
C#
1
2
3
4
string s = @"{""acces_token"" : ""23sajb32y1uhdjsahdjh38uy4r38897df128fsfsadas"" ,""expires_in"":0,""user_id"":id}";
            
            var t = Regex.Match(s, @"""acces_token""[\s:]+""([\d\w]+)""").Groups[1];
            Console.WriteLine(t);
0
zme9
94 / 67 / 23
Регистрация: 22.09.2013
Сообщений: 622
10.08.2014, 18:36  [ТС] 11
XRoy,
0
rutelun
147 / 73 / 17
Регистрация: 31.05.2014
Сообщений: 215
10.08.2014, 18:40 12
zme9,
C#
1
2
3
4
5
string s = @"{""acces_token"" : ""23sajb32y1uhdjsahdjh38uy4r38897df128fsfsadas"" ,""expires_in"":0,""user_id"":id}";
            int start = s.IndexOf(":")+1;
            int end = s.IndexOf(",");
            string t = s.Substring(start, end - start).Replace("\"","").Trim();
            Console.WriteLine(t);
0
Петррр
6160 / 3461 / 897
Регистрация: 28.10.2010
Сообщений: 5,926
10.08.2014, 18:45 13
https://dotnetfiddle.net/UuTOPc
1
zme9
94 / 67 / 23
Регистрация: 22.09.2013
Сообщений: 622
10.08.2014, 18:48  [ТС] 14
rutelun, вылетает ошибка
Длина не может быть меньше нуля.
0
XRoy
861 / 711 / 305
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
10.08.2014, 18:49 15
zme9,
Вы уверены что у вас не пустая строка?
0
zme9
94 / 67 / 23
Регистрация: 22.09.2013
Сообщений: 622
10.08.2014, 18:50  [ТС] 16
XRoy, на скрине видно же что нет. И я скинул весь код на первой странице.
0
rutelun
147 / 73 / 17
Регистрация: 31.05.2014
Сообщений: 215
10.08.2014, 18:52 17
zme9, скажите чему у вас равны переменные start и end
0
rattrapper
foo();
864 / 568 / 221
Регистрация: 03.07.2013
Сообщений: 1,547
Записей в блоге: 2
10.08.2014, 18:56 18

Не по теме:

Петррр, все ждал, когда в этой теме появится JObject. И спасибо за .Net Fiddle! Но все же код удобнее читать на форуме


Можно еще так:
C#
1
2
dynamic obj = JObject.Parse("{\"acces_token\" : \"ad8s432fa37s5d9f\" ,\"expires_in\":0,\"user_id\":0}");
Console.WriteLine(obj.acces_token);
0
zme9
94 / 67 / 23
Регистрация: 22.09.2013
Сообщений: 622
10.08.2014, 18:57  [ТС] 19
rutelun, скопировал ваш код.
Петррр, Error reading JObject from JsonReader.
Походу я косячный . Вот весь код.
C#
1
2
3
4
5
6
7
8
9
10
HttpRequest req = new HttpRequest();
            HttpResponse resp;
            req.Cookies = new CookieDictionary();
            resp = req.Get("https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username=**&password=**");
            Console.WriteLine(resp);
            string s = Convert.ToString(resp);
            JObject obj = JObject.Parse(s);
            Console.WriteLine(obj["acces_token"]);
            Console.ReadLine();
        }
0
rutelun
147 / 73 / 17
Регистрация: 31.05.2014
Сообщений: 215
10.08.2014, 19:00 20
zme9, я имел в виду во время выполнения. Так же проверьте строку s - там может содержаться что-то другое

Добавлено через 44 секунды
zme9, попробуйте так
C#
1
2
3
4
5
6
7
8
9
HttpRequest req = new HttpRequest();
            HttpResponse resp;
            req.Cookies = new CookieDictionary();
            resp = req.Get("https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username=**&password=**");
            Console.WriteLine(resp); 
            JObject obj = JObject.Parse(resp);
            Console.WriteLine(obj["acces_token"]);
            Console.ReadLine();
        }
0
10.08.2014, 19:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.08.2014, 19:00

Вытянуть с сайта курсы валют
приветствую. Есть пример кода вытягивающий данные валют с сайта нацбанка РФ, а...

Как вытянуть путь к файлу из ярлыка?
Подскажите, пожалуйста, как узнать куда указывает ярлык?

C диапазона страниц вытянуть все ссылки
Друзья, надеюсь на вашу помощь Есть Диапазон страниц, ...


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

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

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