2009-04-27 7 views
1

Я разбираю некоторые html с помощью регулярных выражений, и я хочу совместить строки, начинающиеся со слова без каких-либо тэгов html, а также удаление пробела. Использование C# Regex мой первый рисунок был:regex: совпадающие фразы без> или пробела

pattern = @"^\s*([^<])"; 

, который пытается захватить все белое пространство, а затем захватить любые не «<» символов. К сожалению, если линия имеет все пробелы перед первым «<», это возвращает последний символ пробела перед «<». Я бы хотел, чтобы это провалило матч.

Любые идеи?

+0

Могу ли я обратиться к [моему ответу] (http://stackoverflow.com/questions/792679/need-help-writing-regular-expression-html-parsing/792686#792686) к другому аналогичному вопросу? –

+0

Разбор HTML обсуждался много. См. Этот пост: [Использование регулярных выражений для разбора HTML: почему бы и нет?] (Http://stackoverflow.com/questions/590747/using-regular-expressions-to-parse-html-why-not) –

ответ

1

Отвечая на вопрос в ближайшее время, только разработал это:

шаблон = @ "^ \ S * ((\ s) [^ <] +?!)";

Благодарим вас за отзыв о regex и html. Я расскажу об этом в будущем. Я пишу служебную программу, чтобы сделать несколько страниц многоязычными (т. Е. Добавить asp: литералы для жестко закодированного текста и т. Д.), Я думаю, что для этого достаточно регулярного выражения, но если есть лучшие инструменты, сообщите мне (веб-материал isn моя область ...).

3

Не используйте регулярные выражения для анализа HTML. Это очень плохая идея, и в лучшем случае ваш код будет шелушащимся. Независимо от вашего языка/платформы у вас будет полнофункциональный анализатор HTML. Просто используйте это.

Невозможно, чтобы регулярное выражение могло корректно обрабатывать все случаи экранирования, использования сущности и т. Д.

Смежные вопросы