Форум программистов, компьютерный форум, киберфорум
C#: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
 Аватар для VinnieJones
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 48

VK API groups.search регулярные выражения

30.12.2016, 18:56. Показов 2046. Ответов 8

Студворк — интернет-сервис помощи студентам
Есть кусочек кода:

C#
1
2
textBox1.Text = client.DownloadString("https://api.vk.com/method/groups.search?q="+ zapros + "&type=group,page&count="+ kol + "&sort=4&v=5.38&access_token=" + token);
url = textBox1.Text;
Если вкратце то он возвращает огромную строку с поиском по пабликах по ключу Знакомства :
C#
1
{"response":{"count":154774,"items":[{"id":71143131,"name":"Знакомства Алматы","screen_name":"znakomsya_almaty","is_closed":0,"type":"page","is_admin":0,"is_member":0,"photo_50":"https:\/\/pp.vk.me\/c621821\/v621821138\/21945\/3jtt83VCic0.jpg","photo_100":"https:\/\/pp.vk.me\/c621821\/v621821138\/21944\/PHqat8IQuqQ.jpg","photo_200":"https:\/\/pp.vk.me\/c621821\/v621821138\/21942\/F9hD4rZP9Y0.jpg"},{"id":76524584,"name":"Знакомства Минск","screen_name":"club76524584","is_closed":0,"type":"page","is_admin":0,"is_member":0,"photo_50":"https:\/\/pp.vk.me\/c637730\/v637730715\/14e0f\/LBuCD3EltcI.jpg","photo_100":"https:\/\/pp.vk.me\/c637730\/v637730715\/14e0e\/gzap9R4PEfA.jpg","photo_200":"https:\/\/pp.vk.me\/c637730\/v637730715\/14e0d\/23oTJaAkuhA.jpg"},{"id":90313655,"name":"Неанонимные знакомства 18+","screen_name":"club90313655","is_closed":0,"type":"page","is_admin":0,"is_member":0,"photo_50":"https:\/\/pp.vk.me\/c625119\/v625119213\/25474\/q1QnC_8FUuY.jpg","photo_100":"https:\/\/pp.vk.me\/c625119\/v625119213\/25473\/AXSVvK1fhcc.jpg","photo_200":"https:\/\/pp.vk.me\/c625119\/v625119213\/25472\/yQrFaKphIQE.jpg"},{"id":51301689,"name":"Признавашки Астаны ღ Знакомства","screen_name":"astana.love","is_closed":0,"type":"page","is_admin":0,"is_member":0,"photo_50":"https:\/\/pp.vk.me\/c636727\/v636727914\/358a9\/EIJ8JrNYPX0.jpg","photo_100":"https:\/\/pp.vk.me\/c636727\/v636727914\/358a8\/DVhNtFK_2V8.jpg","photo_200":"https:\/\/pp.vk.me\/c636727\/v636727914\/358a6\/fk80nh5CV3E.jpg"},{"id":78443391,"name":"Чат для замеЧАТельных людей ❤ Знакомства,Общение","screen_name":"chatdlyludey","is_closed":1,"type":"group","is_admin":0,"is_member":0,"photo_50":"https:\/\/pp.vk.me\/c836424\/v836424486\/15dcb\/FT_HSJwsdCE.jpg","photo_100":"https:\/\/pp.vk.me\/c836424\/v836424486\/15dca\/6zgeBwigOfQ.jpg","photo_200":"https:\/\/pp.vk.me\/c836424\/v836424486\/15dc9\/4mdEn9gDGe4.jpg"},{"id":46772177,"name":"ЗНАКОМСТВА\/КАЗАНЬ","screen_name":"topznakomstvakzn","is_closed":1,"type":"group","is_admin":0,"is_member":0,"photo_50":"https:\/\/pp.vk.me\/c622926\/v622926534\/2d870\/reyD9T2G3QQ.jpg","photo_100":"https:\/\/pp.vk.me\/c622926\/v622926534\/2d86f\/_8MmJTPy778.jpg","photo_200":"https:\/\/pp.vk.me\/c622926\/v622926534\/2d86e\/aGCDFoQ_VJg.jpg"},{"id":2694283,"name":"Знакомства для подростков","screen_name":"znakomv","is_closed":1,"type":"group","is_admin":0,"is_member":0,"photo_50":"https:\/\/pp.vk.me\/c624624\/v624624172\/3078e\/_xxcz2vNzfs.jpg","photo_100":"https:\/\/pp.vk.me\/c624624\/v624624172\/3078d\/emtYFsVBoYU.jpg","photo_200":"https:\/\/pp.vk.me\/c624624\/v624624172\/3078c\/_Q03M7PJ8Hw.jpg"},{"id":75346613,"name":"Секс знакомства | Зрелые | Вирт | Мамки","screen_name":"szvznak","is_closed":0,"type":"page","is_admin":0,"is_member":0,"photo_50":"https:\/\/pp.vk.me\/c626222\/v626222488\/14179\/JIT1b0p1OMQ.jpg","photo_100":"https:\/\/pp.vk.me\/c626222\/v626222488\/14178\/W_SM1FSP8eM.jpg","photo_200":"https:\/\/pp.vk.me\/c626222\/v626222488\/14177\/5h46ArD2Lzs.jpg"},{"id":43474147,"name":"Знакомства Екатеринбург ZE™","screen_name":"z_ekb","is_closed":0,"type":"page","is_admin":0,"is_member":0,"photo_50":"https:\/\/pp.vk.me\/c629128\/v629128999\/17d57\/j4_JX8NLjBY.jpg","photo_100":"https:\/\/pp.vk.me\/c629128\/v629128999\/17d56\/vDlEJgMu5GM.jpg","photo_200":"https:\/\/pp.vk.me\/c629128\/v629128999\/17d55\/BNL14ValoN8.jpg"},{"id":42099061,"name":"Полтава Знакомства","screen_name":"poltava1234","is_closed":0,"type":"page","is_admin":0,"is_member":0,"photo_50":"https:\/\/pp.vk.me\/c627125\/v627125547\/116a4\/sPe7sTVVECk.jpg","photo_100":"https:\/\/pp.vk.me\/c627125\/v627125547\/116a3\/sKCco6DWHo0.jpg","photo_200":"https:\/\/pp.vk.me\/c627125\/v627125547\/116a2\/fzQmhC0HghY.jpg"}]}}
мне нужно из этой гигантской строчки научится вытаскивать инфу, к примеру id групп. Додумался до двух вариантов но все не то

первый вариант вроде бы правильный но гдето туплю:
C#
1
2
3
RegularExpression keyRE = new RegularExpression(url);
string key = keyRE.Find("id(.*)name", true);
textBox2.Text = key;
второй вариант, уже получше но все равно не то) много мусора лишнего и выводит только одно значение.
C#
1
2
foreach (Match match in Regex.Matches(url, @"id([\s\S]*?)name"))
textBox2.Text = match.ToString()+"\n";
Помогите понять в чем проблема.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.12.2016, 18:56
Ответы с готовыми решениями:

VK api, регулярные выражения
В общем есть список ссылок на пользователей в формате: https://vk.com/id12345/ y https://vk.com/id12346/ n ...

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

Vk api (метод wall.search)
Здравствуйте. Использую метод wall.search для поиска нужных постов на стене и столкнулся с такой проблемой: не находит пост, если он был...

8
 Аватар для edward_freedom
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
30.12.2016, 19:12
VinnieJones, http://www.newtonsoft.com/json
1
 Аватар для EveKS
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
30.12.2016, 20:09
VinnieJones,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
    public class Item
    {
 
        [JsonProperty("id")]
        public int Id { get; set; }
 
        [JsonProperty("name")]
        public string Name { get; set; }
 
        [JsonProperty("screen_name")]
        public string ScreenName { get; set; }
 
        [JsonProperty("is_closed")]
        public int IsClosed { get; set; }
 
        [JsonProperty("type")]
        public string Type { get; set; }
 
        [JsonProperty("is_admin")]
        public int IsAdmin { get; set; }
 
        [JsonProperty("is_member")]
        public int IsMember { get; set; }
 
        [JsonProperty("photo_50")]
        public string Photo50 { get; set; }
 
        [JsonProperty("photo_100")]
        public string Photo100 { get; set; }
 
        [JsonProperty("photo_200")]
        public string Photo200 { get; set; }
    }
 
    public class Response
    {
 
        [JsonProperty("count")]
        public int Count { get; set; }
 
        [JsonProperty("items")]
        public IList<Item> Items { get; set; }
    }
 
    public class Example
    {
 
        [JsonProperty("response")]
        public Response Response { get; set; }
    }
1
 Аватар для VinnieJones
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 48
30.12.2016, 23:19  [ТС]
нашел вот это:

C#
1
2
3
4
textBox1.Text = client.DownloadString("https://api.vk.com/method/groups.search?q="+ zapros + "&type=group,page&count="+ kol + "&sort=4&v=5.38&access_token=" + token);
url = textBox1.Text;
JObject test = JObject.Parse(url);
textBox2.Text = test + "\n";
что привело в более читабельный вид парсинг:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
{
  "response": {
    "count": 26152,
    "items": [
      {
        "id": 101653403,
        "name": "Виртуальный РњРёСЂ - Р’РёСЂС‚  РЎРµРєСЃ",
        "screen_name": "cyber_sex",
        "is_closed": 0,
        "type": "group",
        "is_admin": 0,
        "is_member": 0,
        "photo_50": "https://pp.vk.me/c837724/v837724777/21d9/O-crwXwNn8A.jpg",
        "photo_100": "https://pp.vk.me/c837724/v837724777/21d8/uSUFH4m1Ymc.jpg",
        "photo_200": "https://pp.vk.me/c837724/v837724777/21d7/IZRnVv0wG8I.jpg"
      },
      {
        "id": 126182427,
        "name": "СЕКС Р—РќРђРљРћРњРЎРўР’Рђ | Р—Р*ЕЛЫЕ | Р’Р&#152;Р*Рў | РњРђРњРљР&#152; |  18+",
        "screen_name": "od_sex",
        "is_closed": 0,
        "type": "page",
        "is_admin": 0,
        "is_member": 0,
        "photo_50": "https://pp.vk.me/c636223/v636223813/27aeb/UcBJ2bbDT1k.jpg",
        "photo_100": "https://pp.vk.me/c636223/v636223813/27aea/ik30Im73m5M.jpg",
        "photo_200": "https://pp.vk.me/c636223/v636223813/27ae9/C5-0N6yTPho.jpg"
      },
      {
        "id": 72569466,
        "name": "Sex Art | Секс РђСЂС‚ [18+]",
        "screen_name": "sexxart",
        "is_closed": 0,
        "type": "page",
        "is_admin": 0,
        "is_member": 0,
        "photo_50": "https://pp.vk.me/c627223/v627223097/5fb95/TqBRUjav0NQ.jpg",
        "photo_100": "https://pp.vk.me/c627223/v627223097/5fb94/cd6S2CT8bqQ.jpg",
        "photo_200": "https://pp.vk.me/c627223/v627223097/5fb93/AKi5cMaKWYY.jpg"
      },
      {
        "id": 56109865,
        "name": "Just Sex",
        "screen_name": "just__sex",
        "is_closed": 0,
        "type": "page",
        "is_admin": 0,
        "is_member": 0,
        "photo_50": "https://pp.vk.me/c631219/v631219277/1c301/SAqwSkJLXds.jpg",
        "photo_100": "https://pp.vk.me/c631219/v631219277/1c300/KwJONphv2us.jpg",
        "photo_200": "https://pp.vk.me/c631219/v631219277/1c2ff/WWVVcOrqk6k.jpg"
      },
      {
        "id": 44781423,
        "name": "Секс РїРѕ телефону",
        "screen_name": "sex_call",
        "is_closed": 0,
        "type": "page",
        "is_admin": 0,
        "is_member": 0,
        "photo_50": "https://pp.vk.me/c628023/v628023505/4e1b2/2mCbewH4-I8.jpg",
        "photo_100": "https://pp.vk.me/c628023/v628023505/4e1b1/EMDhbVI-CV0.jpg",
        "photo_200": "https://pp.vk.me/c628023/v628023505/4e1b0/sr0GZaSFb4I.jpg"
      },
      {
        "id": 51219941,
        "name": "Секс Знакомства РњРёРЅСЃРє",
        "screen_name": "sex.belarus",
        "is_closed": 1,
        "type": "group",
        "is_admin": 0,
        "is_member": 0,
        "photo_50": "https://pp.vk.me/c633225/v633225797/35b2d/1TZTZZ1FWJc.jpg",
        "photo_100": "https://pp.vk.me/c633225/v633225797/35b2c/OcQwzu118lQ.jpg",
        "photo_200": "https://pp.vk.me/c633225/v633225797/35b2a/PRYw75H8AzE.jpg"
      },
      {
        "id": 102588197,
        "name": "Обитель похоти",
        "screen_name": "sex.obitel",
        "is_closed": 0,
        "type": "page",
        "is_admin": 0,
        "is_member": 0,
        "photo_50": "https://pp.vk.me/c638326/v638326600/ee0d/jFns1XpCsSI.jpg",
        "photo_100": "https://pp.vk.me/c638326/v638326600/ee0c/MnUeRqavahs.jpg",
        "photo_200": "https://pp.vk.me/c638326/v638326600/ee0b/i1t7UvFKIEw.jpg"
      },
      {
        "id": 93149017,
        "name": "SEX | Life | +18",
        "screen_name": "life18xxx",
        "is_closed": 0,
        "type": "group",
        "is_admin": 0,
        "is_member": 0,
        "photo_50": "https://pp.vk.me/c636623/v636623220/82/P_XfYfjDTao.jpg",
        "photo_100": "https://pp.vk.me/c636623/v636623220/81/8xS6ZsYztrY.jpg",
        "photo_200": "https://pp.vk.me/c636623/v636623220/80/acbr49wXwLQ.jpg"
      },
      {
        "id": 77822142,
        "name": "Р’РёСЂС‚ Виртуальный секс",
        "screen_name": "virt_sex_porn",
        "is_closed": 1,
        "type": "group",
        "is_admin": 0,
        "is_member": 0,
        "photo_50": "https://pp.vk.me/c625627/v625627492/558a/FdqcEG6p9YU.jpg",
        "photo_100": "https://pp.vk.me/c625627/v625627492/5589/q8EROfT6ejg.jpg",
        "photo_200": "https://pp.vk.me/c625627/v625627492/5588/QvaAFEQiPrk.jpg"
      },
      {
        "id": 107172651,
        "name": "ДВА РЇР”Р*Рђ",
        "screen_name": "sex_drugs_hh",
        "is_closed": 0,
        "type": "group",
        "is_admin": 0,
        "is_member": 0,
        "photo_50": "https://pp.vk.me/c636221/v636221599/33399/1BgUthkYjJA.jpg",
        "photo_100": "https://pp.vk.me/c636221/v636221599/33398/zlJlh-Uo-r0.jpg",
        "photo_200": "https://pp.vk.me/c636221/v636221599/33397/cQ6u8TyOyH8.jpg"
      }
    ]
  }
}
Можно более понятнее? может у кого есть примеры?
0
.NET senior
 Аватар для bax_tang
441 / 359 / 137
Регистрация: 23.09.2016
Сообщений: 980
30.12.2016, 23:40
VinnieJones, пример прямо на главной странице сайта Newtonsoft:

C#
1
2
3
4
5
6
7
8
9
10
11
12
string json = @"{
  'Name': 'Bad Boys',
  'ReleaseDate': '1995-4-7T00:00:00',
  'Genres': [
    'Action',
    'Comedy'
  ]
}";
 
Movie m = JsonConvert.DeserializeObject<Movie>(json);
 
string name = m.Name; // Bad Boys
Классы для десериализации Вам предоставил EveKS.

Добавлено через 4 минуты
ссылка на пример использования

И ещё - "доктор, что-то у Вас не то с кодировкой!"©
1
 Аватар для VinnieJones
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 48
31.12.2016, 00:07  [ТС]
bax_tang, я этот пример видел но не осилил его
для начала
C#
1
string json = @"{
подобной строчки у меня нет, ладно методом тыка предполагаю что это count но дальше больше "Movie" как его впиндюрить?
Миниатюры
VK API groups.search регулярные выражения  
0
.NET C#,ASP.NET MVC
Эксперт .NET
 Аватар для lvlkoo
594 / 507 / 224
Регистрация: 16.10.2010
Сообщений: 1,902
31.12.2016, 00:32
Цитата Сообщение от VinnieJones Посмотреть сообщение
string json = @"{
Ну вы чего)

Строка в данном случае - любая строка json, в конкретном примере строка которую вы получили от апи серввера
0
 Аватар для VinnieJones
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 48
31.12.2016, 00:52  [ТС]
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class Item
        {
 
            [JsonProperty("id")]
            public int Id { get; set; }
 
            [JsonProperty("name")]
            public string Name { get; set; }
 
            [JsonProperty("screen_name")]
            public string ScreenName { get; set; }
 
            [JsonProperty("is_closed")]
            public int IsClosed { get; set; }
 
            [JsonProperty("type")]
            public string Type { get; set; }
 
            [JsonProperty("is_admin")]
            public int IsAdmin { get; set; }
 
            [JsonProperty("is_member")]
            public int IsMember { get; set; }
 
            [JsonProperty("photo_50")]
            public string Photo50 { get; set; }
 
            [JsonProperty("photo_100")]
            public string Photo100 { get; set; }
 
            [JsonProperty("photo_200")]
            public string Photo200 { get; set; }
        }


C#
1
2
3
4
5
6
textBox1.Text = client.DownloadString("https://api.vk.com/method/groups.search?q="+ zapros + "&type=group,page&count="+ kol + "&sort=4&v=5.38&access_token=" + token);
url = textBox1.Text;
JObject test = JObject.Parse(url);
string json = url;
Item account = JsonConvert.DeserializeObject<Item>(json);
textBox2.Text = account.Id.ToString() + account.Name;
Соединил воедино то что говорили все) в итоге заработало без ошибок но в textBox2 высвечивается символ нуля) но не как не айди + имя
0
.NET C#,ASP.NET MVC
Эксперт .NET
 Аватар для lvlkoo
594 / 507 / 224
Регистрация: 16.10.2010
Сообщений: 1,902
31.12.2016, 03:29
VinnieJones, откуда же ему взяться, если исходя из ваших входных данных вы десериализуете Json обьект "response" который не содержит ни айди, ни имени

Есть два варианта, правильный и не очень.

Правильный - вы должны выстроить правильную иерархию классов, Класс Response, который содержит массив обьектов класса Item, с соотвествующим названием Items, тогда десериализатор правильно "расставит все по полочкам".

"И не очень" - достать "items" доп парсингом строки, или через dynamic обьект, но тогда в любом случае массивы нужно десереализовывать именно в массив обьектов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.12.2016, 03:29
Помогаю со студенческими работами здесь

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

Регулярные выражения: вставка символов в середину найденного выражения
Есть строки типа этого: &quot;В году 1783 марта месяца произошло событие, которые на долго запомнилось&quot;78. регулярное выражение...

Крякозябры при запросе wall.search vk api
Доброго дня всем. Получаю список сообщений со стены группы в вк: HTTP:=THTTPSend.Create; HTTP.UserAgent:='Mozilla/5.0 (Windows NT...

Получить вторую страницу Google Api Search
Доброго времени суток. Таким кодом, я получаю первую страницу выдачи Google, по своему ключу. const string apiKey =...

Организовать поиск на сайте через гугл с использованием API Google AJAX Search
Раньше не работал с ASP, но вот судьба злодейка заставила))) нужно организовать поиск на сайте через гугл с использованием API Google...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru