2010-04-28 5 views
0

Я пытался Газа HTML-теги, используя регулярные выражения заменить шаблон "< [^>] *>" от слова генерируется HTML, который выглядит следующим образом:RegEx Газа HTML-теги Проблема

< HTML Xmlns: V = " урна: схемы-Microsoft-ком: VML " Xmlns: о = " урна: схемы-Microsoft-ком: офис: офис " XMLNS: ш = " урна: схемы-Microsoft-ком: офис: слово " XMLNS: ST1 = " урна : schemas-microsoft-com: office: smarttags " xmlns = " http://www.w3.org/TR/REC-html40"&gt;

< голова > < META HTTP-эквив = содержание Content-Type = " текст/html; кодировка = изо-8859-2 " > < мета имя = содержание Generator = " Microsoft Word 11 (фильтрованное среда) " > < - [если МСО] > < стиль >

v: * {поведение: URL (# по умолчанию # VML);}

о: * {поведение: URL (# по умолчанию # VML);}

ш: * {поведение: URL (# по умолчанию # VML);}

.shape {поведение: URL (# по умолчанию # VML);}

</стиль > <! [ENDIF] - > < о: SmartTagType NamespaceURI = " урна: схемы-Microsoft-ком: офис: SmartTags " имя = " место " downloadurl = " http://www.5iantlavalamp.com/"/&gt; < - [если МСО] > < стиль >

st1: *! {Поведение: URL (# по умолчанию # ieooui)}

</стиль > < [ENDIF] - - > < стиль > < - /* Font Определение / @ шрифт лицо {font-family: Tahoma; panose-1: 2 11 6 4 3 5 4 4 2 4;} / Определения стилей */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin: 0in; margin-bottom: .0001pt; Размер шрифта: 12.0pt; font-family: " Times New Roman ";} a: link, span.MsoHyperlink {color: blue; text-decoration: underline;} a: Попадание, пролет.MsoHyperlinkFollowed {color: purple; text-decoration: underline;} span.EmailStyle17 {mso-style-type: personal; font-family: Arial; цвет: windowtext;} span.EmailStyle18 {mso-style-type: personal-reply; font-family: Arial; цвет: темно-синий;} @page Раздел1 {размер: 8.5in 11.0in; Маржа: 1.0in 1.25in 1.0in 1.25in;} div.Section1 {страница: Раздел1;} - > </стиль >

</голова >

Все работает отлично, за исключением выделенные жирным шрифтом, кто-нибудь получил идеи, как их сопоставить?

Спасибо,

Александар

+0

Вы должны поместить свой HTML-код в блок CODE (кнопка 101/010). Это делает чтение намного проще. –

ответ

-1
+0

Он не пытается разобрать его, он пытается избавиться от него. Я, случается, согласен с тобой - ОП столкнется с такими же проблемами - но эта ссылка не делает этого. – Etaoin

+0

Ударьте мне: D –

+5

Зависит от ситуации. Если OP просто нужно очистить несколько HTML-файлов в текстовом редакторе, простое регулярное выражение или два могут отлично справиться с этой задачей. –

0

Люди обычно советуют использовать парсер вместо регулярного выражения при работе с HTML.

В случае, если есть использовать регулярное выражение :) можно потребительных

<style>.*?</style> 
2

Ваше регулярное выражение не принимает во внимание, что комментарии могут содержать > символы, которые не завершенные комментарий. Попробуйте это регулярное выражение:

<!--.*?-->|<[^>]*> 

Вы должны включить опцию, чтобы сделать . перерывы матч линии. Как это сделать, зависит от приложения или языка программирования, с которым вы используете это регулярное выражение. Например. в Perl вы должны использовать флаг /s. В .NET вы должны установить RegexOptions.SingleLine.

+0

* Ваш * regex не учитывает, что значения атрибутов тегов HTML могут содержать '>', как в '<enter text here> ' –

+1

Мой ответ объясняет, почему регулярное выражение Aleksandar не делает то, что он ожидает, и предоставляет только решение для этой конкретной проблемы на его конкретном примере.Есть много вещей, которые мое регулярное выражение не учитывает. Если MS Word не помещало свои теги '