htmlファイルをtextBoxに読み込んで、その中にあるタグのみを正規表現で削除したいです。
FileStream file = File.Open
( @"c:\test.html", FileMode.Open );
Encoding enc = Encoding.GetEncoding("Shift_JIS");
reader = new StreamReader( file ,enc);
StringBuilder text = new StringBuilder();
while(reader.Peek() != -1)
{
string A = reader.ReadLine().ToString();
A = Regex.Replace(A,@"<(([^>]|\n)*)>","");
text.Append(A);
}
textBox1.Text = text.ToString();
とすると、ある程度のタグは削除できるんですが、<DIV
などの大文字で書かれたタグが削除できませんでした。
解る方いらっしょいましたら宜しくお願いします。
No.1ベストアンサー
- 回答日時:
<DIV ってなってますけど
<DIV
align="center">
みたいに改行が入っているタグでしょうか?
1行ずつでないなら <([^>]|\n)*>で置換できます。
1行ずつやるなら (<[^>]*>|<[^>]*$|^[^<]*>) でしょうかね。
ただし両方ともタグ以外に「<」、「>」が使われていないことを前提にしてますけど・・・
もっといい方法があるかもしれません。
この回答への補足
残ってしまうタグは、<DIV style="MARGIN-LEFT: 1em; TEXT-INDENT: -1em"> や <SPAN style="BACKGROUND: #afafaf"> や <FONT color=red> が残っています。
補足日時:2005/05/25 11:421行ずつ出ない方法で全てのタグが削除されました。
ありがとうございました。後は以外の文が取り除ければ
OKなんですが・・・。
解りましたら宜しくお願いします。
BODY {FONT-FAMILY: ヒラギノ明3-Leaf外字付等幅,"MS P明朝"}B {FONT-FAMILY: ヒラギノ角5-Leaf外字付等幅,"MS Pゴシック"}H2 {FONT-FAMILY: ヒラギノ角5-Leaf外字付等幅,"MS Pゴシック"}.oubun {FONT-FAMILY: Century,Times New Roman,"MS P明朝"}RUBY {WORD-SPACING: -5px}
No.3
- 回答日時:
<style(※)*</style>
※「に</style>を含まない」正規表現を入れる
で置換くらいしか自分には思いつかないです・・・
文字列を含まない正規表現
http://www.axis.t.u-tokyo.ac.jp/~shunak/memo/reg …
きちんとやるにはやはりBLUEPIXYさんの言うようにしなくてはなりませんね。
私は以前にブラウザのタグをすべて取得して属性などの変更をする
ツールを作ったときはMSHTMLを使いました。
VC#のやり方ですけどこちらをどうぞ
http://www.microsoft.com/japan/msdn/academic/Art …
もっと詳しいサイトがあったのですが
そのサイトがどこにあるかわからなくなってしまいました・・・
あと、気になったのですが1行ずつ読み込んで改行コードが消えているので
text.Append(A);の後に
text.Append("\n");を入れたほうがよいと思います。
改行無しでよいならそれでも構わないのですけど。
参考URL:http://www.microsoft.com/japan/msdn/academic/Art …
この回答への補足
A = Regex.Replace(A,@">",">\r\n");
A = Regex.Replace(A,@"<(([^>]|\n)*)>","");
として改行するようにはしてます。"\r\n" としないと改行されないのでこうしてます.
No.2
- 回答日時:
大文字で書かれていることではなくて、
>が来る前に改行しているからだと思います。
タグのパーサをちゃんとしないで質問文のような簡略な方法では、一般的なHTMLではうまくタグを削除することはできないと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C# で、あるフォルダー内にあるすべてのテキストファイルを別のフォルダーにコピーする。 4 2022/11/21 13:23
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- HTML・CSS HTML、cssのatomつぅーやつで 課題Ex1ってやつを表示させたいのですが、 私は課題Ex1が 2 2022/12/15 16:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストエリア内の改行禁止
-
テーブルのセルデータを自動改...
-
\\n \\r \\t について
-
H1タグに改行の<br>を使う
-
改行できる・できない入力ボッ...
-
<TD><input type="text"></TD>...
-
Hタグを改行禁止にしてspanのよ...
-
文字の最後に半角空白が勝手に...
-
VBE でスペースと改行を見える...
-
長いURLを途中で改行(折り返す...
-
Windowsのformでtextareaに入力...
-
テーブル内の文字列を改行させたい
-
<br >と<br /> 違い
-
htmlで文字列をクリップボード...
-
テキストエディタでエンドタグ...
-
<br />について
-
「:」について
-
ページ下部のDIV要素下部に不要...
-
liタグの自動改行をやめたい!
-
XMLを作成してもタグしか表示さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストエリア内の改行禁止
-
H1タグに改行の<br>を使う
-
テーブルのセルデータを自動改...
-
長いURLを途中で改行(折り返す...
-
テーブルの幅を固定するとnowra...
-
改行できる・できない入力ボッ...
-
\\n \\r \\t について
-
テーブル内の文字列を改行させたい
-
preタグがプロの現場であまり使...
-
テキストエリア内の改行もその...
-
「:」について
-
PCの画面を縮小したらサイズ...
-
htmlで文字列をクリップボード...
-
<br />タグの、brの後の半角ス...
-
<TD><input type="text"></TD>...
-
XMLの改行方法とリンクの仕方
-
html上で改行するとスペースが...
-
<br style="clear:both;">って...
-
mailtoで本文に改行を入れたい
-
文章改行で出来る半角スペース...
おすすめ情報