2010-02-11 34 views
1

值有如下的一些查詢字符串像View.aspx?type=a&boo=bar&i=1如何刪除所有的參數,我從查詢

如何刪除所有的參數值,因此這將成爲View.aspx?type=&boo=&i=

對於每個字符串參數集有它是自己的參數組合,數量爲2-3。

編輯:如何刪除除特定設置以外的所有參數?

回答

3

所有參數

Regex.Replace(source, "=.+?(&|$)", "=$1") 

要跳過參數 「檔案」 和 「噓聲」:

Regex.Replace(source, "(?<![?&]archive|[?&]boo)=.+?(&|$)", "=$1", 
    RegexOptions.IgnoreCase) 
+0

太棒了!是否可以適當地跳過特定的一組參數及其值?即View.aspx?type = a&boo = bar&i = 1&archive = true to View.aspx?type = a&boo =&i =&archive = true – abatishchev

+0

編輯跳過參數 –

1

你想在該頁面內做到這一點?爲什麼不將參數轉發給自己?也許我錯過了這一點。謹慎解釋一下?

+0

我正在寫使用的壓倒一切的我自己的SiteMapProvider System.Web.XmlSiteMapProvider.FindSiteMapNode和我的站點地圖中的節點爲動態只有參數的名稱不值 – abatishchev

0

使用System.Uri,或System.UriBuilder

+0

我怎樣才能將它用於我的任務? – abatishchev

+0

另外我需要說的System.Uri是閹割類,無法與查詢 – abatishchev

+0

什麼也不知道「閹割類」的意思。 System.Uri是一個不可變的類(如System.String)。要操縱Uris,你需要使用UriBuilder。 在再次閱讀您的問題時,我認爲沒有「罐裝」的方式來做到這一點。新的Uri(「http://foo/bar.aspx?foo = bar&goo = jar」).AbsolutePath會讓你回到「/bar.aspx」,但它沒有達到你想要的。 Youu當然可以獲得Query屬性,使用String.Split()分割它,然後對其進行處理。 – feroze

相關問題