-2

我有以下网址:

http://vk.com/video#/video219171498_166164529

http://vk.com/video?gid=21095903#/video-21095903_165699050

http://vk.com/video#/video219171498_166164529

我需要从这些字符串中获取信息“video219171498_166164529”。也许有一个代码可以带“视频”和 19 个符号。对不起我的英语不好

4

4 回答 4

2

您实际上可以通过使用 only 来获得价值Split()

string _str = "http://vk.com/video#/video219171498_166164529";
var _arr = _str.Split("/");
string _value = _arr[_arr.length - 1];
于 2013-09-04T09:15:30.193 回答
1

为了改进 491243 的答案,我会这样:

 string _str = "http://vk.com/video#/video219171498_166164529";
 string _arr = _str.Split("/").Last();
于 2013-09-04T09:21:07.547 回答
1

我不确定您的问题的标题是否重要,但是要扩展其他人的有效答案,如果您确实需要(?)使用正则表达式,您可以获得与其他人相同的结果。C# 使用 System.Text.RegularExpressions 所以你可以做这样的事情来提取“视频...”字符串。

string pattern = "(video[\w-]+)";
string url = "http://blahblah/video-12341237293";

Match match = Regex.Match(url, pattern);
// Here you can test Match to check there was a match in the first place
// This will help with multiple urls that are dynamic rather than static like the above example

string result = match.Groups[1].Value;

在上面,结果将等于 url 中的匹配字符串。首先使用 Match 来检查是否存在匹配意味着您可以将其放入循环中并遍历 List/Array 等,而无需知道 url 值或更改特定情况的模式。

无论如何,您可能不需要正则表达式,但如果您这样做了,我希望以上内容有所帮助。

于 2013-09-04T11:17:58.187 回答
0
string _str = "http://vk.com/video#/video219171498_166164529";

var index = _str.LastIndexOf("/");
var value = _str.SubString(index + 1);

一定要添加错误处理

于 2013-09-04T09:20:59.730 回答