2

我有一个 HTML 页面字符串,我想从 HTML 页面的开头删除一些字符串。我要删除的代码可以是

<!DOCTYPE HTML>

或者

<!DOCTYPE anything in between>

无论如何,它总是以 . 开头<!DOCTYPE和结尾>。如何搜索此行并将其从 HTML 页面中删除?

到目前为止,我设法<!DOCTYPE HTML>使用以下代码搜索并删除第一个字符串

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

但是第二个呢?

4

1 回答 1

5

您可以使用以下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);
于 2013-05-11T06:07:11.373 回答