Разговор, поскольку кто-то, кто провел 18 месяцев, работая в отображающейся компании, которая включала работу над алгоритмом маршрутизации... да, Dijkstra , действительно работает с несколькими модификациями:
С модификациями вдоль тех строк, можно сделать даже маршрутизацию по пересеченной местности в очень разумный период времени.
Вместо этого замените его на RegExOptions.Singleline
, и он будет работать нормально.
Если не в однострочном режиме, точка соответствует любому символу , кроме новой строки.
Обратите внимание, что Singleline
и Multiline
не являются взаимоисключающими. Они делают две разные вещи. Процитируем MSDN:
Многострочный режим . Меняет значение ^ и $, чтобы они совпадали в начале и конец, соответственно, любой строки, а не только начало и конец вся строка
Однострочный режим . Изменения значение точки (.), так что это соответствует каждому символу (вместо каждый символ, кроме \ n).
Другие люди уже предлагали HTML Agility Pack. Я просто почувствовал, что у вас должно быть объяснение, почему ваше регулярное выражение не работает :)
Пожалуйста, не делайте этого • Используйте регулярные выражения для работы с языками разметки - вам нужно использовать более совершенный инструмент, созданный для такого рода задач.
Вместо этого используйте Html Agiliy Pack . Я даже нашел эту статью , в которой читатель (по имени Саймон Мурье) комментирует функцию, которая использует Html Agility Pack для удаления комментариев из документа:
Саймон Мурье сказал:
Это пример кода для удаления комментарии:
static void Main (string [] args) { HtmlDocument doc = новый HtmlDocument (); doc.Load ("filewithcomments.htm"); doc.Save (Console.Out); // показать до RemoveComments (doc.DocumentNode); doc.Save (Console.Out); // показать после } static void RemoveComments (узел HtmlNode) { если (! node.HasChildNodes) { возвращение; } для (int i = 0; i
У меня работает этот:
<!--(\n|.)*-->
Но я думаю, вы могли бы использовать обычный XML-документ для XML или другой HtmlAgilityPack для HTML. В высшей степени , а не , рекомендующий анализировать разметку с помощью RegEx.