Создание Windows-приложений на основе Visual C#


           

Класс Utils.cs


using System; using System.Text.RegularExpressions; using System.Collections; using System.Text; using System.Web;

namespace Mail { /// <summary> /// Класс, содержащий общие функции. /// </summary> public class Utils { // Архив кодировок. static Hashtable knownEncodings = new Hashtable();

static Utils() {

} /// <summary> /// Извлечение простого текста из HTML-текста. /// </summary> /// <param name="html">HTML текст.</param> /// <returns>Простой текст.</returns> public static string ExtractTextFromHtml(string html) { // С помощью регулярных выражений удаляем или заменяем // HTML-теги. // удаление <!DOCTYPE ... > Regex r = new Regex(@"<![^>]+>"); // Создание регулярного выражения. html = r.Replace(html, ""); // Замена подходящей части текста на пустую строку.

// удаление <head>...</head> r = new Regex(@"<head>.*?</head>", RegexOptions.IgnoreCase); // Создание регулярного выражения. // r = new Regex(@"<style[^>]+[>].*?</style>", RegexOptions.IgnoreCase); html = r.Replace(html, ""); // Замена подходящей части текста на пустую строку. // представляем, что </div>, <br />, </p> — это новая строка r = new Regex(@"(</div>|<[/]?br[^>]+>|</p>)", RegexOptions.IgnoreCase); // Создание регулярного выражения. html = r.Replace(html, "\r\n"); // Замена подходящей части текста на символы перехода на новую строку.

// удаление всех тегов <...> r = new Regex(@"<[^>]+>", RegexOptions.Multiline); // Создание регулярного выражения, удаляющего все оставшиеся теги. html = r.Replace(html, ""); html = HttpUtility.HtmlDecode(html); return html; }

/// <summary> /// Возвращение кодировки текста. /// </summary> /// <param name="charset">Текст, содержащий название кодировки.</param> /// <returns></returns> public static Encoding GetEncoding(string charset) { // Проверяем, есть ли данная кодировка в памяти класса, // и если есть, возвращаем ее. if (knownEncodings.ContainsKey(charset)) { return (Encoding)knownEncodings[charset]; } // Если кодировка не обнаружена, начинаем анализировать строку. Encoding e = Encoding.Default; try { e = Encoding.GetEncoding(charset); } catch {}



Содержание  Назад  Вперед