如果我有一个包含多个urls的文本框
rapidshare.com/files/379028801/foo.bar.HDTV.XviD-LOL.avi
rapidshare.com/files/379182651/foo.bar.720p.HDTV.X264-DIMENSION.mkv
rapidshare.com/files/379180004/foo.bar.720p.HDTV.X264-DIMENSION.part1.rar rapidshare.com/files/379180444/foo.bar.720p.HDTV.X264-DIMENSION.part2.rar rapidshare.com/files/379181251/foo.bar.720p.HDTV.X264-DIMENSION.part3.rar rapidshare.com/files/379181743/foo.bar.720p.HDTV.X264-DIMENSION.part4.rar
我需要一个文件名及其urls
textbox2.text =
foo.bar.HDTV.XviD-LOL.avi
从这里开始
rapidshare.com/files/379028801/foo.bar.HDTV.XviD-LOL.avi
foo.bar.720p.HDTV.X264-DIMENSION.part1.rar
从这里开始
rapidshare.com/files/379180004/foo.bar.720p.HDTV.X264-DIMENSION.part1.rar
诸若此类
谢谢:)
发布于 2010-06-13 11:58:59
我可以使用这个正则表达式来获取文件名,
rapidshare.com/files/[0-9]*/(?<name>.*)$C#代码看起来像这样,
string text= textbox1.Text;
Regex regex = new Regex(@"rapidshare.com/files/[0-9]*/(?<name>.*)$");
MatchCollection matches = regex.Matches(text);
if (matches.Count > 0)
{
string fileName = (from Match match in matches
where match.Success
select match.Groups["name"].Value.Trim());
}发布于 2010-06-16 15:06:53
那么,你就不能得到最后一个/后面的字符串吗?
只要得到以"LastIndexOf("/") + 1“开头的子字符串,就可以得到它,跳过所有的正则表达式。这是一个单行解决方案,而且速度更快!
大概是这样的:
String文件名= ulr.Substring(url.LastIndexOf("/") + 1);
干杯,
vloo
发布于 2010-06-13 11:53:52
像这样的东西应该就行了
String flnam = Regex.Match("rapidshare.com/files/379028801/Fringe.S02E19.HDTV.XviD-LOL.avi",
@".*\/([^/]*)$").Groups[1].Value.ToString();
Console.WriteLine(flnam);https://stackoverflow.com/questions/3030980
复制相似问题