人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

C#でPHPのstrip_tagsの機能が必要なのですが、.NETで同一の機能があれば教えて下さい。無い場合は自作のアイデア(正規表現など)を教えて頂ければと思います。

●質問者: cloned
●カテゴリ:コンピュータ
✍キーワード:.NET C# PHP アイデア 正規表現
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ●
●50ポイント

同一の機能はないようですが、近い機能を実現するために関数を作っている人は沢山いるようです。

"C# HTML remove tags"などの語句で検索すると良いでしょう。

色々な言語でstrip_tagsに近い機能を表現しているページがありました。

public static string StripHTML(String TexteHTML) 
{ 
return System.Text.RegularExpressions.Regex.Replace(TexteHTML, "(<[^>]+>)", ""); 
}

別のサンプルです。

public string Strip(string text)
{
 return Regex.Replace(text, @"<(.|\n)*?>", string.Empty);
}

もうちょっと凝ったことをやっているサンプルもありました。

ソースが長いので以下のサイトでご確認ください。

一部のタグを許可させるサンプルもあります。

(正規表現に関してのみ触れられているので、その他のサンプルの正規表現部分を置き換える形で使うと良いはずです。)

参考になると幸いです。

◎質問者からの返答

ありがとうございます。同一の機能がないのは残念ですが、とても参考になりました。


2 ●
●50ポイント

上記の件ですが、どのようなことを実現したいのか、によりますが、基本的にはご紹介したサンプルでstrip_tagsで引数を1つ与えた場合と同じ動作をするはずです。

許可したいタグがある場合、場面によって許可したいタグが変わることがないのであれば、最後に紹介した正規表現のサンプルを参考にして書き換えることで特定のタグを許可させることができます。

場面によって許可したいタグが異なる場合、strip_tagsの第2引数のallowable_tagsを実装しなければいけなくなりますが、それほど難しくないはずです。

C#を使ったことがないので詳しい書き方は分かりませんが、独自に定義する関数で2つ目の引数を受け入れる設定にし、2つ目の引数の内容を元に正規表現を生成すれば良いはずです。

<b><br>

という第2引数があった場合、それを

b|/b|br|/br

に変換し、正規表現の一部に挿入するイメージです。

お時間ある時に確認してみてください。

参考になると幸いです。

◎質問者からの返答

ありがとうございます。これでC#版のstrip_tagsが実装できそうです。実現するだけならそれほど難しくないのですが、それだけに色々な方法を探していたので、とても参考になりました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ