-2

これは私の文字列です:

<a href=\"https://vine.co/v/h7pUFJirEBX\" target=\"_blank\">https://t.co/LFIwdhvjB6</a>

取得したい部分は「/v/」以降の「h7pUFJirEBX」です。

C#でそれを行う方法を知っていますか?

更新: これは私のコードです。

        var findIndex = url.IndexOf("/v/");
        var stringTweet = url.Substring(findIndex + 3);
        var removeafter = stringTweet.IndexOf("\"");
        var finalString = stringTweet.Remove(removeafter);
        return finalString;

finalString は "h7pUFJirEBX" になりました。ただし、これは問題に対するひどいアプローチのようです。

4

3 に答える 3

1

最初にそこからhref属性を抽出する必要があります。RegExagilitypackまたはagilitypackを使用して解析できます: HTML のスニペットからリンクを簡単に抽出するHtmlAgilityPack

そこから、次のことができます。

var uri = new Uri(@"https://vine.co/v/h7pUFJirEBX\");

var yourValue = uri.AbsolutePath.Substring(3);
于 2013-07-10T07:05:12.393 に答える
1

String.Substringは、尋ねられた質問に対する正確な回答です。あなたのために働くかもしれません:

 var result = "<a href=\"https://vine.co/v/h7pUFJirEBX\" target=\"_".Substring(24, 14);

ノート:

  • HTML を文字列操作 (または正規表現を使用するとさらに悪い) で解析するのは困難です。HtmlAgilityPack の使用を検討してください
  • Url を手動で分割するのは危険です。URLのようなパスのコンポーネントを適切に取得する方法を提供するUriクラスの使用を検討してください。
于 2013-07-10T07:01:00.613 に答える
0

を使用して、文字列内の「/v/」シーケンスのインデックスを見つけますIndexOf()。次に、Substring()見つかった開始インデックスを"\"のインデックスに取得します。ただし、URLを解析するための良いアプローチかどうかはわかりません。

于 2013-07-10T07:04:58.903 に答える