【发布时间】:2018-10-11 20:13:59
【问题描述】:
我正在开发一个 ASP.NET 4.0 Web 应用程序,它的主要目标是转到 MyURL 变量中的 URL,然后从上到下读取它,搜索所有以“描述”开头的行" 并且仅在删除所有 HTML 标记时保留这些标记。我接下来要做的是从结果后缀中删除“描述”文本,这样我就只剩下我的设备名称了。我该怎么做?
protected void parseButton_Click(object sender, EventArgs e)
{
MyURL = deviceCombo.Text;
WebRequest objRequest = HttpWebRequest.Create(MyURL);
objRequest.Credentials = CredentialCache.DefaultCredentials;
using (StreamReader objReader = new StreamReader(objRequest.GetResponse().GetResponseStream()))
{
originalText.Text = objReader.ReadToEnd();
}
//Read all lines of file
String[] crString = { "<BR> " };
String[] aLines = originalText.Text.Split(crString, StringSplitOptions.RemoveEmptyEntries);
String noHtml = String.Empty;
for (int x = 0; x < aLines.Length; x++)
{
if (aLines[x].Contains(filterCombo.SelectedValue))
{
noHtml += (RemoveHTML(aLines[x]) + "\r\n");
}
}
//Print results to textbox
resultsBox.Text = String.Join(Environment.NewLine, noHtml);
}
public static string RemoveHTML(string text)
{
text = text.Replace(" ", " ").Replace("<br>", "\n");
var oRegEx = new System.Text.RegularExpressions.Regex("<[^>]+>");
return oRegEx.Replace(text, string.Empty);
}
【问题讨论】:
-
我会将(编译的)正则表达式存储在静态变量中,这可能会加快进程并避免内存泄漏和 \n 与 Environment.NewLine