我有一个 HTML 页面字符串,我想从 HTML 页面的开头删除一些字符串。我想删除的代码可以是
<!DOCTYPE HTML>
或者
<!DOCTYPE anything in between>
无论如何,它总是以 开始<!DOCTYPE并结束>。如何搜索该行并将其从 HTML 页面中删除?
到目前为止,我设法<!DOCTYPE HTML>使用以下代码搜索并删除第一个字符串
PageString = e.Result.Replace("<!DOCTYPE HTML>", "").Trim();
Run Code Online (Sandbox Code Playgroud)
但第二个呢?
您可以使用以下Regex.Replace方法来做到这一点:
PageString = Regex.Replace(e.Result, "<!DOCTYPE[^>]+>", string.Empty);
Run Code Online (Sandbox Code Playgroud)
这里的模式将匹配以 开头的任何子字符串,<!DOCTYPE后跟一个或多个不是 的字符>,最后是>。这将取代任何看起来像 <!DOCTYPE anything in between>包括<!DOCTYPE HTML>.
^如果您使用起始锚点 ( ) 仅在字符串开头匹配此模式,则可以更加安全,并且实际上可以提高此方法的性能:
PageString = Regex.Replace(e.Result, "^<!DOCTYPE[^>]+>", string.Empty);
Run Code Online (Sandbox Code Playgroud)