来自网址的C#正则表达式信息

时间:2013-09-04 09:13:11

标签: c# .net

我有以下网址:

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 个答案:

答案 0 :(得分:2)

您实际上只能使用Split()来获取值。

string _str = "http://vk.com/video#/video219171498_166164529";
var _arr = _str.Split("/");
string _value = _arr[_arr.length - 1];

答案 1 :(得分:1)

为了改善491243的答案,我会那样:

 string _str = "http://vk.com/video#/video219171498_166164529";
 string _arr = _str.Split("/").Last();

答案 2 :(得分:1)

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

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值,或更改特定情况的模式。

无论如何,你可能不需要正则表达式,但是你做了,我希望以上有所帮助。

答案 3 :(得分:0)

string _str = "http://vk.com/video#/video219171498_166164529";

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

请务必添加错误处理