如果我有一个带有多个网址的文本框
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
我需要一个文件名及其网址
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
等等
谢谢:)
答案 0 :(得分:2)
好吧,你不能只得到最后一个/?
后面的字符串只需获取带有“LastIndexOf(”/“)+ 1”开头的子字符串,你就可以了,跳过所有正则表达式的东西。这是一个单线解决方案,它更快!
就是这样:
String filename = ulr.Substring(url.LastIndexOf(“/”)+ 1);
干杯,
vloo
答案 1 :(得分:1)
这样的事情应该这样做
String flnam = Regex.Match("rapidshare.com/files/379028801/Fringe.S02E19.HDTV.XviD-LOL.avi",
@".*\/([^/]*)$").Groups[1].Value.ToString();
Console.WriteLine(flnam);
答案 2 :(得分:1)
我可以使用此正则表达式获取文件名
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());
}
答案 3 :(得分:0)
您应该能够搜索此类正则表达式并将其替换为“”:
rapidshare.com/files/[0-9]*/
例如,在JavaScript中:
var fileName = fullUrl.replace(/rapidshare.com\/files\/[0-9]*\//, "");
请注意,\/
会转义/
,这会在JavaScript中以其他方式结束正则表达式。