我想在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=.*?(?=\\?|$)", "");
但它不起作用,请帮助!
答案 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);
请注意,如果找不到'?'
,则会抛出异常。