删除具有已知开始和结束字符串的字符串c#

Put*_*aKg 2 c# string replace

我有一个 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)

但第二个呢?

p.s*_*w.g 5

您可以使用以下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)