我有一个HTML页面字符串,我想从HTML页面的开头删除一些字符串。我要删除的代码可以是
<!DOCTYPE HTML>
或
<!DOCTYPE anything in between>
无论如何,它始终以<!DOCTYPE
开头,以>
结尾。如何搜索此行并将其从HTML页面中删除?
到目前为止,我设法使用以下代码
搜索并删除带有<!DOCTYPE HTML>
的第一个字符串
PageString = e.Result.Replace("<!DOCTYPE HTML>", "").Trim();
但第二个怎么样?
答案 0 :(得分: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);