C # Парсинг источника веб-страницы - PullRequest
1 голос
/ 23 февраля 2009

Среди стены текста, который является источником страниц; Мне нужно получить video_id, l и t без кавычек, поэтому для такого раздела.

"video_id": "lUoiKMxSUCw", "l": 105, "sk": "-2fL6AANk__E49CRzF6_Q8F7yBPWdb9QR", "fmt_map": "35/640000/9/0 / 115,34 / 0/9/0/115 , 5/0/7/0/0 "," t ":" vjVQa1PpcFMbYtdhqxUip5Vtm856lwh7lXZ6lH6nZAg = ",

Мне нужно следующее

lUoiKMxSUCw

105

vjVQa1PpcFMbYtdhqxUip5Vtm856lwh7lXZ6lH6nZAg =

Мне сказали использовать "регулярные выражения", но я не уверен, как их использовать. любая помощь была бы хороша:)

Ответы [ 3 ]

1 голос
/ 23 февраля 2009

Используемое регулярное выражение может быть:

\"video_id\":\s*\"(?<videoID>.*?)\"(?:.*?)\"l\":\s*(?<l>.*?),(?:.*?)\"t\":\s*\"(?<t>.*?)\"

Вот пример кода, который поможет вам начать работу:

string sample = "\"video_id\": \"lUoiKMxSUCw\", \"l\": 105, \"sk\": \"-2fL6AANk__E49CRzF6_Q8F7yBPWdb9QR\", \"fmt_map\": \"35/640000/9/0/115,34/0/9/0/115,5/0/7/0/0\", \"t\": \"vjVQa1PpcFMbYtdhqxUip5Vtm856lwh7lXZ6lH6nZAg=\",";
string regPattern = "\\\"video_id\\\":\\s*\\\"(?<videoID>.*?)\\\"(?:.*?)\\\"l\\\":\\s*(?<l>.*?),(?:.*?)\\\"t\\\":\\s*\\\"(?<t>.*?)\\\"";
Regex reg = new Regex(regPattern, RegexOptions.Singleline);
if (reg.IsMatch(sample))
{
    Match m = reg.Match(sample);
    GroupCollection gColl = m.Groups;
    Console.WriteLine("VideoID:{0}", gColl["videoID"].Value);
    Console.WriteLine("l:{0}", gColl["l"].Value);
    Console.WriteLine("t:{0}", gColl["t"].Value);
}

Не забудьте импортировать "System.Text.RegularExpressions". ; -)

1 голос
/ 23 февраля 2009

Я думаю, что эти сайты хороши для изучения, но если вы ожидаете, что код сделает вашу работу, извините ..

это выглядит как хорошее начало: Использование регулярных выражений в C #

А также этот сайт очень полезен

0 голосов
/ 23 февраля 2009

Если порядок всегда один и тот же, вы можете использовать это регулярное выражение:

"video_id"\s*:\s*"([^"]*)"\s*,\s*"l"\s*:\s*(\d+)\s*(?:,\s*"[^"]*"\s*:\s*"[^"]*"\s*)*,\s*"t"\s*:\s*"([^"]*)"

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

...