2017-04-11 2 views
0

데이터베이스에서 필드를 읽고 GridView에 표시하고 해당 필드에 <br/> 태그가 텍스트에 포함되어 있습니다. 그래서 코드에서 제거하려고 노력하고 있지만 e.Row.Cells[index].Text의 값을 확인하면 <br/>이 포함되어 있지 않으며 대신 ;br/&gt;이 있습니다. 문자열에서 html 마크 업 제거

그래서 나는 어떤 문자열 < 시작하여 >로 끝나는 또는 & 시작하여 ;로 끝나는를 제거하는 기능을 작성했습니다. 이 코드는 <> 제거하지만 여전히 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); 
} 

가 어떻게이 <br/> 태그를 제거하는 방법은 무엇입니까?

+2

[필수 링크] (http://stackoverflow.com/a/1732454/2307070) 이유에 대해 ṫ̨̗̺̭̮̞̗̜̮̗̙̫̺̖̭̯͊ͨ̌͒̍͘͘͟͝h͓̩̙͙̻̗͔̞̘̟̩̯͓̩̙͙̻̗͔̞̘̟̩̯͋͑͐͋͑͐a̴̧ͨͭ͒ͯ̓͐̇ 건͢҉ ̨̳̜̤͍͖t̵̳̳ bad 나쁜 생각입니다. 또한'; br/>'이고, '< br/>'이 아니겠습니까? –

+0

@ThomasAyoub 네 말이 맞아요. 이건 '< br/>'입니다. 그래서 내가 정규식을 사용하지 않는다면 무엇을 사용해야합니까? – user123456789

답변

3

이 리터럴 문자열이기 때문에

About HtmlAgilityPack

, 당신은 (SH C)에만 String.Replace()를 사용 울드.

2
  1. 문자열의 등록을 해제하십시오.
  2. 그런 다음 regex를 사용하여 예상되는 태그를 찾아서 제거하십시오.

또는

충분한 공부 시간 및 사용이있는 경우

다음 HtmlAgilityPack 패키지를 사용합니다.

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

또는 필요한 경우 Environment.NewLine로 교체 : |

Nuget Package Link