2013-05-11 2 views
1

У меня есть строка HTML-страницы, и я хочу удалить некоторую строку из начала HTML-страницы. Код, который я хочу, чтобы удалить может бытьУдалить строку с известной строкой начала и конца C#

<!DOCTYPE HTML>

или

<!DOCTYPE anything in between>

Несмотря на это, он всегда начинается с <!DOCTYPE и заканчивается >. Как искать эту строку и удалять ее со страницы HTML?

До сих пор мне удалось найти и удалить первую строку с <!DOCTYPE HTML> используя следующий код

PageString = e.Result.Replace("<!DOCTYPE HTML>", "").Trim(); 

Но как насчет второго?

ответ

4

Вы можете сделать это с помощью метода Regex.Replace:

PageString = Regex.Replace(e.Result, "<!DOCTYPE[^>]+>", string.Empty); 

картина здесь будет соответствовать любой подстроку, начиная с <!DOCTYPE следует один или более символов, которые не >, а затем >. Это заменит все, что выглядит как <!DOCTYPE anything in between>, включая <!DOCTYPE HTML>.

Вы могли бы быть очень безопасным и действительно улучшить производительность этого метода, если вы используете стартовый якорь (^) только соответствует этому образцу в начале строки:

PageString = Regex.Replace(e.Result, "^<!DOCTYPE[^>]+>", string.Empty); 
+0

Спасибо за предложение. Но я получил ошибку 'System.ArgumentException: parsing' – PutraKg

+0

@PutraKg Извините, у меня были параметры в неправильном порядке. См. Мой обновленный ответ. –