如何删除两个单词之间的字符串
How to remove string between two words
我正在使用以下代码行下载网页,
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();
}
然后从这里我提取身体部位如下:
int nBodyStart = downloadString.IndexOf("<body");
int nBodyEnd = downloadString.LastIndexOf("</body>");
String strBody = downloadString.Substring(nBodyStart, (nBodyEnd - nBodyStart + 7));
现在我想删除任何附加在身体部位的javascript,我该怎么做?
我的目标是获取网页的唯一内容。但由于每个页面可能有不同的方法,所以我试图删除任何js标签,然后使用下面的RegEx删除任何HTML标签
Regex.Replace(strBody, @"<[^>]+>| ", "").Trim();
但我不知道如何删除脚本标记之间的js,因为脚本可能是多行或单行的。
提前谢谢。
要匹配脚本标记(包括对的内部),请使用以下命令:
<script[^>]*>(.*?)</script>
要匹配所有HTML标签(但不是对内的),您可以使用:
</?[a-z][a-z0-9]*[^<>]*>
我刚刚意识到你可能也想删除样式标签:
<style[^>]*>(.*?)</style>
此处为完整的正则表达式字符串:
<script[^>]*>(.*?)</script>|<style[^>]*>(.*?)</style>|</?[a-z][a-z0-9]*[^<>]*>|<[^>]+>|
您可以使用HtmlAgilityPack
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();
}
HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument();
document.LoadHtml(html);
// to remove all tags
var result = document.DocumentNode.InnerText;
// to remove script tags inside body
document.DocumentNode.SelectSingleNode("//body").Descendants()
.Where(n => n.Name == "script")
.ToList()
.ForEach(n => n.Remove());
相关文章:
- JS中单词之间的空格
- 突出显示jQuery中单词之间的空格
- 两个单词之间的Javascript差异
- 在某些情况下,“text”方法会删除单词之间的空格
- 使用正则表达式获取多个单词,单词之间留有空格
- 如何删除两个单词之间的字符串
- 我在angular JS中选择了一个默认选项,并删除了两个单词之间的下划线
- 如何删除句点和前一个单词之间的空格
- 在两个单词之间应用正则表达式
- 什么是用于删除大写字母之间的空格的正则表达式,但在单词之间保留空格
- jQuery:如何在单词之间修剪换行符和制表符
- 谷歌邮件应用程序脚本中的正则表达式困难 - 在两个单词之间选择单词
- 正则表达式删除所有白色景观,除了单词之间的一个
- 多次捕捉两个相同单词之间的所有内容
- 获取两个单词之间的每个字符串
- Javascript/REGEX:删除字符串中以特定字母开头的特定文本(单词),单词之间用空格分隔
- 替换两个单词之间的文本
- Jquery在HTML中的两个特定单词之间切换内容
- 如何在两个单词之间提取最少的字符
- XRegExp接受所有UTF-8字符,单词之间有空格,排除某个符号,并且没有尾随空格