2012-12-13 63 views
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(); 

     } 

    } 

} 
+3

Err ...你的代碼有點混亂。雖然仍然可以理解,但很明顯,這是行不通的。但由於拼寫錯誤的數量,很難說出實際錯誤。所以我想如果你提交了一些可編譯的代碼會有幫助。 –

+0

另外一個解釋會有很長的路要走。 – RBarryYoung

+0

與工作有關的代碼im的唯一部分是刪除「以下結果」的部分,正如我所說我沒有訪問代碼,所以我從內存中寫入代碼。它的一切工作正常接受字符串操作。我不知道這是否有幫助。當我寫這個問題的網站超時,所以我的解釋似乎已經失蹤。 (我需要從傳入的html中抓取幾個字,並刪除它們,但沒有一個類,所以我不能通過它們的標籤或類名抓取它們) – user1902540

回答

0

那麼您的RegEx是錯誤的。我不明白你期望的模式@"\The Followin Results Are\b"匹配「Follwing結果是」

有幾個問題,首先,模式開始於\這是不是在輸入,我相信這只是被解釋爲文字。 \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); 
+0

即時通訊不只是想通過請求的html讀取並獲得擺脫「以下結果」,然後吐在頁面 – user1902540

+0

好吧謝謝你的幫助,不明白我能做些什麼,並相應地更新 – user1902540

+0

@ user1902540這些建議都應該解決它。您的RegEx完全錯誤。它不符合「以下結果」匹配「*從此選項卡* *以下結果是*到這個詞的開頭,包括空格*」 – evanmcdonnal