gpt4 book ai didi

c# - 如何删除两个单词之间的字符串

转载 作者:行者123 更新时间:2023-12-02 18:01:47 24 4
gpt4 key购买 nike

我正在使用以下代码行下载网页,

WebRequest request = WebRequest.Create(strURL);
WebResponse response = request.GetResponse();
Stream data = response.GetResponseStream();

string html = String.Empty;
using (StreamReader sr = new StreamReader(data))
{
html = sr.ReadToEnd();
}

然后从这里我提取 body 部分如下:

int nBodyStart = downloadString.IndexOf("<body");
int nBodyEnd = downloadString.LastIndexOf("</body>");
String strBody = downloadString.Substring(nBodyStart, (nBodyEnd - nBodyStart + 7));

现在我想删除正文部分中附加的任何 JavaScript,我该怎么做?

我的目标是获取网页的唯一内容。但由于每个页面可能有不同的方法,所以我尝试删除任何 js 标签,然后使用下面的正则表达式删除任何 HTML 标签

Regex.Replace(strBody, @"<[^>]+>|&nbsp;", "").Trim();

但是我不知道如何删除脚本标签之间的js,因为脚本可能是多行或单行。

提前致谢。

最佳答案

要匹配脚本标签(包括对的内部),请使用以下内容:

<script[^>]*>(.*?)</script>

要匹配所有 HTML 标记(但不匹配对的内部),您可以使用:

</?[a-z][a-z0-9]*[^<>]*>

<小时/>

我刚刚意识到您可能也想删除样式标签:

<style[^>]*>(.*?)</style>

<小时/>

完整的正则表达式字符串:

<script[^>]*>(.*?)</script>|<style[^>]*>(.*?)</style>|</?[a-z][a-z0-9]*[^<>]*>|<[^>]+>|&nbsp;

关于c# - 如何删除两个单词之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20463643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com