2013-06-11 89 views
-2

我想從字符串下面的c#正則表達式函數操作在C#中的字符串

www.ploscompbiol.org/article/fetchObjectAttachment.action;jsessionid=99171C97AE28712E048E321DB6B192F3?uri=info%3Adoi%2F10.1371%2Fjournal.pone.0066655&representation=XML 

我已經試過

string id = id.Replace(";jsessionid=.*?(?=\\?|$)", ""); 

使用正則表達式刪除jsessionid=99171C97AE28712E048E321DB6B192F3,但它不能正常工作,請幫助!

+0

這是'string.Replace',而不是'Regex.Replace'。此外,我無法從我不知道的網站下載文件。發佈實際的XML。 –

+0

我不認爲發佈實際的XML會產生任何影響。我只需要停止將'jsessionid'附加到url或將其刪除。 –

回答

1
Regex.Replace(text, "jsessionid=[^\\?]+","") 
+0

謝謝現在工作得很好。 –

0

您可以使用以下命令刪除jsession。

Regex rgx = new Regex("jsessionid=[^\\?]*)"); 
string id = rgx.Replace(line,""); 
+0

這是'string.Replace' ... –

+0

string.Replace不工作,通過這個網站衝浪,一些建議string.replaceAll,我找不到。 –

+0

他們可能一直在談論具有'replaceAll'方法的Java。爲此只需使用正則表達式替換 – greedybuddha

0

如果您改變了主意,你不希望使用正則表達式,但與功能與string.replace管理,

 string sample = "ansjsessionid=99171C97AE28712E048E321DB6B192F3wer"; 
     sample = sample.Replace(sample.Substring(sample.IndexOf("jsessionid="),43),""); 

請注意,我認爲ID總是32個字符長。不使用正則表達式

0

解決方案:

var url = @"www.ploscompbiol.org/article/fetchObjectAttachment.action;jsessionid=99171C97AE28712E048E321DB6B192F3?uri=info%3Adoi%2F10.1371%2Fjournal.pone.0066655&representation=XML"; 

var startIndex = url.IndexOf("jsessionid="); 
var endIndex = url.IndexOf('?', startIndex); 
url.Remove(startIndex, endIndex - startIndex); 

注意如果'?'沒有找到那麼它會拋出異常。

相關問題