求一个C#字符串截取方法:

string url="
www.abc.com/news/shanghai.aspx?id=105
"
string file="" //网页文件名

file = url.Substring(url.LastIndexOf("/") + 1);
这个方法的话,结果file="shanghai.aspx?id=105"

我的要求是从最后一个“/”开始截取,取到第一个“.aspx”之前。
上面的url截取后的值应为file="shanghai"

劳请大师们指教一下,3Q
最新回答
望春风

2024-10-31 08:55:11

string url = "
www.abc.com/news/shanghai.aspx?id=105
";
string file = url.Substring(url.LastIndexOf("/") + 1, url.IndexOf(".aspx") - url.LastIndexOf("/") - 1);
挂名女友

2024-10-31 09:33:23

应用正则表达式,代码如下(已经测试通过):
string strText = "
www.abc.com/news/shanghai.aspx?id=105
";
string RegText = @".*/(.*?).aspx\?id=\d+";
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(RegText, System.Text.RegularExpressions.RegexOptions.Singleline);
System.Text.RegularExpressions.MatchCollection _Matches = reg.Matches(strText);
string UrlFileName = _Matches[0].Groups[1].Value;
青青草原杠把子

2024-10-31 09:19:32

再把file来个substring不就行了
file="shanghai.aspx?id=105"
file=file.Substring(0, file.IndexOf("."));
或者你这样
string url="
www.abc.com/news/shanghai.aspx?id=105
";
string file=url.Substring(url.LastIndexOf("/") + 1,url.LastIndexOf("."));
就行了
Substring(开始位置,结束位置)
何必太在乎你

2024-10-31 09:48:00

Kid_Wang的思路是正解
寻找位置,替换string.Empty.
用青春做赌注

2024-10-31 08:38:53

file = file.Replace(file.Substring(file.LastIndexOf(".") ),"");
影魅

2024-10-31 08:32:42

file=url.Substring(url.LastIndexOf("/") + 1,url.length() - 12);