質問

ページのソースであるテキストの壁の中で、私は、このようなセクションのために引用符なしVIDEO_ID、Lとtを取得する必要があります。

"VIDEO_ID": "lUoiKMxSUCw"、 "L":105、 "SK": "-2fL6AANk__E49CRzF6_Q8F7yBPWdb9QR"、 "fmt_map":「640000分の35/9/0 / 115,34 / 0/9/0/115 、5/0/7/0 / 0" 、 "T": "vjVQa1PpcFMbYtdhqxUip5Vtm856lwh7lXZ6lH6nZAg ="

私は、次の必要

lUoiKMxSUCw

105

vjVQa1PpcFMbYtdhqxUip5Vtm856lwh7lXZ6lH6nZAg =

私は、「正規表現」を使用するように言われますが、私はそれらを使用する方法がわからないようにしていました。任意の助けいいだろう:)

役に立ちましたか?

解決

を使用する正規表現は可能性があります:

\"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」をインポートすることを忘れないでください。 ; - )

他のヒント

私は学習のため、このサイトは良いと思いますが、あなたがあなたの仕事をするためにコードを期待する場合は、申し訳ありません..

これは良いスタートのようになります。C#<中正規表現の使用/>

そしてまた、このサイトには非常に便利です。

順序は常に同じである場合は、この正規表現を使用することができます:

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

そうしないと、リスト内の各エントリをつかむと、あなたは必要なものを選ぶ必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top