0

文字列内の文字列の検索と削除に問題があります。画像を見ると、baliseとコードを使用している間の文字列を削除したいと思います。しかし、それは削除したいので、私の問題はどこにありますか?

string chaine = im;
int href = chaine.IndexOf("<a href");
int ahref = chaine.IndexOf("</a>");
string sup = "";
for (int c = href; c < ahref; c++)
{
    sup = sup + chaine[c];
    if (chaine[c] != ahref)
        break;
}
chaine = chaine.Replace(sup, "");
im = chaine;

私のスクリーンシュート

4

2 に答える 2

2

コードを簡略化できます。ただし、サブ文字列が見つからない場合に備えて、エラーチェックまたは少なくともtry/catchを追加してください。

int start = im.IndexOf("<a href");
int stop = im.IndexOf("</a>", start);
im = im.Remove(start, stop + 4 - start) // 4 is the length of the stop string
于 2013-02-21T17:53:53.123 に答える
1

正規表現の置換を試してみませんか。

chaine = Regex.replace(chaine, @"\<a(?<attrs>.*)\>.*\<a/\>", m => "<a" + m.Groups["attrs"] + "></a>")
于 2013-02-21T17:43:56.863 に答える