如何在文字“播放列表:”之后获取字符串?
var YT= "tag:youtube.com,2008:user:hollywoodlife09:playlist:PLDovhwKa3P88MwGzYxMDMfiAiiEWxAJYj" ;
我做了什么:
string[] s = YT.Split(':');
但它会给我数组,即[0],s [1] ...而我正在搜索能够在特定文本后给出结果的东西。
我想在“播放列表”之后输入字符串,我知道使用正则表达式可能很容易,但目前我对Regex一无所知..
答案 0 :(得分:3)
使用正则表达式替换,删除带有空字符串的:playlist:
之前的所有内容。
string playlist = Regex.Replace(YT, ".*:playlist:", "");
答案 1 :(得分:3)
您可以使用Substring方法
var output = inputString.SubString(inputString.LastIndexOf("playlist") + 8);
或者在这种情况下,可以通过Split
:
Last
方法完成
string output = YT.Split(':').Last();
答案 2 :(得分:3)
更可重用,
static IEnumerable<KeyValuePair<string, string>> SplitPairs(
this string source,
params char[] seperators)
{
var values = source.Split(seperators);
for(var i = 0; i < values.Length; i += 2)
{
yield return new KeyValuePair<string, string>(
values[i],
values[i + 1]);
}
}
所以你可以做到,
var yTlookup = YT.SplitPairs(':').ToDictionary(p => p.Key, p => p.Value);
var playList = yTLookup["playlist"];
或者如果您不想要扩展名,
var segments = YS.Split(new[] { ':' });
var ySlookup = Enumerable.Range(0, segemnts.Length / 2)
.ToDictionary(i => segments[i * 2], i => segments[(i * 2) + 1]);
所以你可以做到,
var playlist = ysLookup["playlist"];
只要您想要序列中的其他值,任何一种方法都会得到回报。
答案 3 :(得分:1)
正则表达式为.+playlist:([^:])