解析字符串并删除标签和文本

时间:2012-12-13 23:30:52

标签: c# asp.net regex string replace

Web请求工作正常,一切都按计划进行,但由于某种原因,我似乎无法抓住并删除该字符串中的那一段。以下删除是许多人的一次尝试,

我的人没有源,所以我会尝试重新创建它。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net; 
using System.Text;
using System.IO;

public partial class test : System.Web.UI.Page
{

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        StringBuilder sb = new StringBuilder();

        byte[] srs = new byte[8192];
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http:"+//mywebsite.com/getsearchresults/page.aspx="+ result["x"]);

        HttpWebResponse response = (HttpWebResponse)request.GetResponse();

        Stream xStream = response.GetResponseStream();

        string myString = null;
        int count = 0;

        do
        {
            count = xStream.Read(srs, 0, srs.Length);
            if (count != 0)
            {
                myString = Encoding.ASCII.GetString(srs, 0, count);
        //regex ismatch = new myString.regex (@"\The Following Results Are\b")
        //ismatch = regex.replace("The Follwing Results Are","",1);         
                   sb.Append(myString);
              }
            }
            while (count > 0);
            printresults.Text = sb.ToString();

       }

   }

}

1 个答案:

答案 0 :(得分:0)

你的RegEx错了。我不认为您希望模式@"\The Followin Results Are\b"与“Follwing Results Are”相匹配

有一些问题,首先,模式以\开头,而不在输入中,我相信这只是被解释为文字。 \t会匹配一个标签而且不在输入中,所以这两种方式都是错误的。第二个问题是\b,它匹配退格或字边界。我认为这不会起作用,因为输入结束于该单词的结尾,而单词边界在您有\w\W(单词字符后跟非单词字符)时找到匹配项。那里没有边界,因为它是输入的结束。

除非您非常关注多次出现“以下结果”,否则您应该像这样调用string.Replace方法;

 string foo = oldString.Replace("The Following Results Are", System.String.Empty);

如果您需要确保只更换第一个匹配项,您应该这样做;

 RegEx rgx = new RegEx("The Following Results Are");
 string foo = rgx.Replace(oldString, System.String.Empty, 1);