0

私の文字列は次のとおりです。

[...]
<div class="threads">
<a href="/adgagshsdh_t_54654321654" title="Title 2">
<a href="/adgagsdfdfhsdh_t_44654321654" title="Title 3">
<a href="/adgagsdfhsdh_t_54321654" title="Title 4">
<a href="/adgagsdfhsdfhsdh_t_14654321654" title="Title 5">
[...etc]
</div>
[...]

_t_54654321654 を除くすべてを取り出し、その後54654321654を除くすべてを取り出したいと思います

最終的な文字列は次のようになります

54654321654

で試しましたが、実際にindexOfは機能しませんでした。

検索してみましたが、自分がやろうとしていることを正確に説明する方法がわかりませんでした。

4

4 に答える 4

4
string whatYouNeed = "/adgadgdfhdsdfgsadfgdsg_t_54654321654".Split('_').Last();

または

string whatYouNeed = "<a href=\"/adgadgdfhdsdfgsadfgdsg_t_54654321654\" title=\"Title\">"
    .Split('_')
    .Last()
    .Split(new string[] {"\""},StringSplitOptions.RemoveEmptyEntries)
    .First();

ただし、HTML コンテンツを操作する場合は、 Html Agility Packを使用することをお勧めします

これに似たこの質問をチェックし、htmlアジリティパックを使用して

HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.Load("test.html");
var link = htmlDoc.DocumentNode
                  .Descendants("a")
                  .First(); // assume it is First link tag what you need

string hrefValue = link.Attributes["href"].Value;
string whatYouNeed = hrefValue.Split('_').Last();

コメントへの回答

しかし、ソース コードが test.html ドキュメントではなく、文字列内にある場合はどうなるでしょうか。

以下のようにhtmlをロードできます

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);

また、ソースコードにはさまざまな番号のものが数十あり"<a href"'sますが、特定のものは必要ありません。そのうちの 1 つだけです。

var links = htmlDoc.DocumentNode
                      .Descendants("a").ToList();

links[1]上記は、ページ内のすべてのリンクを返し、好きなアイテムを取得できますlinks[3]...

于 2013-05-29T04:32:35.703 に答える
0

サブストリング法でやってみる

お気に入り

string sub = mainString.Substring(startPosition, endPosition);
于 2013-05-29T04:28:42.080 に答える
0

試す:

  Regex rgx = new Regex("^.+?_t_([^\"]+?)\".+?$");
  string result = rgx.Replace(yourString, "$1");

説明: 文字列の先頭から and を使用して文字を照合し、最後^まで移動してから、end までの任意の_t_部分に部分一致します。$1""$

文字列全体が sub-match に置き換えられ$1ます。

于 2013-05-29T04:36:48.583 に答える