0

その中に含まれるマーカーのペアを使用して、文字列のサブセットを抽出する必要があります。たとえば、次の文字列があるとします。

Lorem ipsum dolor sit amet, consectetur adipiscing elit. <!--extract-->Sed nec luctus magna、ac tincidunt metus。Maecenas sodales iaculis ipsum sed blandit. <!--/extract-->Quisque tincidunt nulla sapien, non faucibus turpis aliquam at.

と の間のすべてを抽出するにはどうすればよいですか (ただし、タグ自体は抽出できません)。文字列の長さは毎回異なりますが、常にマーカーが含まれます。

いじりましString.SubString()たが、開始/終了インデックスを確実に計算するのに苦労しています。開始/終了マーカーには、それらを配置できるように常に特定の値があることに注意してください。

前もって感謝します。

4

2 に答える 2

1

このコードは、要件を達成するのに役立ちます

    string s="adipiscing elit.<!--extract-->Sed nec luct<!--/extract-->"
    string p = "<!--extract-->";
    string q = "<!--/extract-->";
    int a = s.IndexOf("<!--extract-->");

    int b = s.IndexOf("<!--/extract-->");
    string result= s.Substring(a + p.Length, b - (a + p.Length));
于 2013-08-14T10:24:50.273 に答える
1

Substring希望の弦の両側からトリミングするときは、2 回の方が簡単だといつも思います。

string myString = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. <!--extract-->Sed nec luctus magna, ac tincidunt metus. Maecenas sodales iaculis ipsum sed blandit.<!--/extract--> Quisque tincidunt nulla sapien, non faucibus turpis aliquam at.";
myString = myString.Substring(myString.IndexOf("<!--extract-->") + "<!--extract-->".Length);
myString = myString.Substring(0, myString.IndexOf("<!--/extract-->"));

または、1回の呼び出しで同じことを行う(醜い)

string myString = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. <!--extract-->Sed nec luctus magna, ac tincidunt metus. Maecenas sodales iaculis ipsum sed blandit.<!--/extract--> Quisque tincidunt nulla sapien, non faucibus turpis aliquam at.";
myString = myString.Substring(myString.IndexOf("<!--extract-->") + "<!--extract-->".Length, myString.IndexOf("<!--/extract-->") - myString.IndexOf("<!--extract-->") - "<!--extract-->".Length);
于 2013-08-14T09:43:24.830 に答える