2017-04-11 15 views
0

データベースからフィールドを読み取ってGridViewに表示していて、そのフィールドに<br/>というタグが含まれています。だからコードからこれらを削除しようとしていますが、e.Row.Cells[index].Textの値をチェックすると<br/>が含まれておらず、;br/&gt;が代わりにあります。文字列からhtmlマークアップを削除する

だから私は、任意のサブ<で始まり、>または&で始まるで終わると;で終わるを削除する機能を作成してみました。コードは<>が削除されますが、それはまだbr/

コード見せている:どのように私は<br/>タグを削除しますか

index = gv.Columns.HeaderIndex("Message"); 
if (index > 0) 
{ 
    string message = RemoveHTMLMarkup(e.Row.Cells[index].Text); 
    e.Row.Cells[index].Text = message; 
} 

static string RemoveHTMLMarkup(string text) 
{ 
     return Regex.Replace(Regex.Replace(text, "<.+?>", string.Empty), "&.+?;", string.Empty); 
} 

を?

+2

[義務的なリンク](http://stackoverflow.com/a/1732454/2307070)なぜṫ̨̗̺̭̮̞̗̜̮̗̙̫̺̖̭̯͊ͨ̌͒̍͘͘͟͝h͓̩̙͙̻̗͔̞̘̟̩̯͓̩̙͙̻̗͔̞̘̟̩̯͋͑͐͋͑͐a̴̧̨̨̳̜̤͍͖ͨͭ͒ͯ̓͐̇t̵̳̳͕͉͋̓͐ͦͬ̈̚は悪い考えです。また、それが '; br/>'で、 '< br/>'ではないと確信していますか? –

+0

@ThomasAyoubはいそうですよ、それは '< br/>'です。だから私は正規表現を使用しない場合、私は何を使用する必要がありますか? – user123456789

答えて

3

これはリテラル文字列であるので、あなたは(SH | C)のみString.Replace()を使用ウルド:

static string RemoveHTMLNewLines(string text) 
{ 
    return text.Replace("&lt;br/&gt;", string.Empty); 
} 

あるいは必要に応じてEnvironment.NewLineと交換してください。

2
  1. 文字列のエンエンティティを削除します。
  2. 次にregexを使用して、予想されるタグを見つけて削除します。

それとも

あなたは勉強して使用するのに十分な時間を持っている場合は、HtmlAgilityPackパッケージを使用します。

About HtmlAgilityPack

Nuget Package Link

関連する問題