アプリ版:「スタンプのみでお礼する」機能のリリースについて

C#で”<”から”>”までの間の文字列を抜き出そうとしていますが、間に改行が入ると抜き出す事ができなくなってしまいます。
何かいい方法があったら教えて下さい。

初心者なので質問内容が分かりにくいかもしれませんが宜しくお願い致します。

if (HTML.StartsWith("<"))
{
endlen = HTML.IndexOf(">");
writer.WriteLine("tag"+"["+"]");
httext[0] = HTML.Substring(0,endlen);
HTML = HTML.Remove(0,endlen1);
}

A 回答 (3件)

同じようなコードを書いて、試してみましたが、


間に改行があっても、問題なく実行できました。

1つ指摘しておきたいのは、
Substringは、
Substring(取り出し開始文字位置,文字数)
であって、後ろの引数は終了文字位置ではないことです。
0123456
<TITLE>
の時
endlenは、6ですが、これは、文字位置を表しているのであって、変数名のように文字数の長さ(length)を表しているのではありません。
従って、
Substringや、Removeで
(o,endlen)としていするのは、
<TITLE
をあらわしていることになります。
これは、多分意図していることと異なるのではないですか?
ちなみに、タグを取り出したいのだから
(1,endlen)とした方がいいのかもしれません。

あと、Remove(0,endlen1);
は、綴り間違いか、あるいは
Remove(0,endlen+1);
ではありませんか?
    • good
    • 0
この回答へのお礼

ありがとうございます!
そうですかぁ、勘違いしてました・・。
Substring(取り出し開始文字位置,文字数)だったんですね。
まだまだ勉強不足で申し訳ありませんでした
ありがとうございました!

お礼日時:2004/11/09 14:42

改行コードが含まれていて問題になるのであれば、


検索処理の前に改行コードを
削除または""に置き換えるという処理をいれてみてはどうでしょうか?

頭の悪い方法しか思いつかなくてすみません。

この回答への補足

頭の悪い方法じゃないですよ~
ご意見いただいて本当に感謝しております。

blackbrainの方法は私も考えたんですが、後々の処理を考えて改行コードを含めて抜き出したいと考えています。
ご回答本当に有難うございます。

補足日時:2004/11/09 13:02
    • good
    • 0

文字列を保持している HTML に、改行を含んだデータは取り込めているのですか?


一行分しか取り込んでいないのだったら
ウマくいかないのは当たり前だと思うのですが

この回答への補足

ご回答有難うございます。
変数の中に改行を含んだ全ての文字列を取り込んでありますので1行分しか取り込んでないと言う事は無いと思います。

補足日時:2004/11/09 11:46
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!