0

Web リクエストは正常に機能し、すべてが計画どおりに進んでいますが、何らかの理由で、その文字列の一部を取得して削除できないようです。以下の削除は多くの試みの 1 つです。

ソースが手元にないので、再作成してみます。

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タブに一致しますが、それも入力に含まれていないため、どちらにしても間違っています。2 番目の問題は\b、どちらがバックスペースまたは単語境界に一致するかです。\w\W入力がその単語の最後で終了し、単語境界が一致する場合(単語文字の後に非単語文字が続く)が見つかるため、ここでも機能するとは思いません。入力の終わりなので、そこに境界はありません。

"The following Results Are" が何度も発生することを特に気にしない限り、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 に答える