Frage

Unter der Wand des Textes, der eine Seite Quelle ist; Ich brauche die video_id, l und t ohne die Anführungszeichen so für einen Abschnitt wie diese zu erhalten.

"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 ="

ich brauche das folgende

lUoiKMxSUCw

105

vjVQa1PpcFMbYtdhqxUip5Vtm856lwh7lXZ6lH6nZAg =

Mir wurde gesagt, „reguläre Ausdrücke“ zu verwenden, aber ich bin nicht sicher, wie man sie benutzt. jede Hilfe wäre schön:)

War es hilfreich?

Lösung

Die Regex könnte verwenden sein:

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

Hier einige Beispiel-Code, den Sie zum Laufen zu bekommen:

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);
}

Vergessen Sie nicht, „System.Text.RegularExpressions“ zu importieren. ; -)

Andere Tipps

Ich denke, diese Websites für das Lernen gut, aber wenn Sie Code erwarten, dass Ihre Arbeit zu tun, sorry ..

Dies sieht aus wie ein guter Start: Reguläre Ausdrücke Verwendung in C #

Und auch diese Seite ist sehr hilfreich

Wenn der Auftrag immer das gleiche ist, könnten Sie diesen regulären Ausdruck verwenden:

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

Ansonsten sollten Sie jeden Eintrag in einer Liste packen und dann diejenigen auswählen Sie benötigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top