У меня есть строка, содержащая кучу мусора MS Word, например:
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
Я пробовал функцию ниже, чтобы удалить его, но они удаляют только части и оставляют массу пробелов:
Public Function CleanOfficeJunk(html As String) As String
' start by completely removing all unwanted tags
html = System.Text.RegularExpressions.Regex.Replace(html, "<[/]?(font|span|xml|del|ins|[ovwxp]:\w+)[^>]*?>", "", System.Text.RegularExpressions.RegexOptions.IgnoreCase)
' then run another pass over the html (twice), removing unwanted attributes
html = System.Text.RegularExpressions.Regex.Replace(html, "<([^>]*)(?:class|lang|style|size|face|[ovwxp]:\w+)=(?:'[^']*'|""[^""]*""|[^\s>]+)([^>]*)>", "<$1$2>", System.Text.RegularExpressions.RegexOptions.IgnoreCase)
html = System.Text.RegularExpressions.Regex.Replace(html, "<([^>]*)(?:class|lang|style|size|face|[ovwxp]:\w+)=(?:'[^']*'|""[^""]*""|[^\s>]+)([^>]*)>", "<$1$2>", System.Text.RegularExpressions.RegexOptions.IgnoreCase)
Return html
End Function
Я использую это в отчете службы отчетов SQL Server (SSRS), и мне нужно очистить строки, прежде чем отображать их в текстовом поле.
Есть ли лучший способ удалить такие вещи?
изменить: я видел это сообщение Удалить комментарии HTML с помощью Regex в Javascript
Но принятый ответ, похоже, не сработал в моей ситуации.
< OR >
. Как бы нет, почему бы вам просто не удалить все, что заключено в< and >
... - person zaggler   schedule 04.02.2016