使用正则表达式函数来操作c#中的字符串

时间:2013-06-11 17:35:18

标签: c# regex jsessionid

我想在c#

中使用regex从下面的字符串中删除jsessionid=99171C97AE28712E048E321DB6B192F3
www.ploscompbiol.org/article/fetchObjectAttachment.action;jsessionid=99171C97AE28712E048E321DB6B192F3?uri=info%3Adoi%2F10.1371%2Fjournal.pone.0066655&representation=XML

我试过了

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

但它不起作用,请帮助!

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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

请注意,我假设ID总是32个字符。

答案 3 :(得分: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);

请注意,如果找不到'?',则会抛出异常。