0

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

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

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();

       }

   }

}
4

1 回答 1

0

那么你的正则表达式是错误的。我看不出您希望该模式@"\The Followin Results Are\b"如何匹配“以下结果”

有几个问题,首先,模式以\不在输入中的 a 开头,我相信这只是被解释为文字。\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);
于 2012-12-13T23:57:08.500 回答