-2

我想jsessionid=99171C97AE28712E048E321DB6B192F3在 c# 中使用正则表达式从下面的字符串中删除

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

我努力了

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

但它不起作用,请帮助!

4

4 回答 4

1
Regex.Replace(text, "jsessionid=[^\\?]+","")
于 2013-06-11T17:40:48.090 回答
0

您可以使用以下内容删除 jsession。

Regex rgx = new Regex("jsessionid=[^\\?]*)");
string id = rgx.Replace(line,"");
于 2013-06-11T17:38:01.513 回答
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);

请注意,如果'?'未找到 a ,则它将引发异常。

于 2013-06-11T17:50:11.890 回答
0

如果您改变主意并且不想使用 RegEx 而是使用 string.replace 函数进行管理,

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

请注意,我假设 ID 始终为 32 个字符长。

于 2013-06-11T17:42:46.660 回答