我有字符串,我需要将它拆分两次并选择特殊字符后面的部分。
让我们说:
string myString = "Word 2010|82e146e7-bc85-4bd4-a691-23d55c686f4b;#Videos|55140947-00d0-4d75-9b5c-00d8d5ab8436";
string[] guids = Regex.Split(myString,";#");
所以在这里我得到了两个具有值 + GUID 的元素的数组。但我只需要 Guids,例如:
[0]82e146e7-bc85-4bd4-a691-23d55c686f4b
[1]55140947-00d0-4d75-9b5c-00d8d5ab8436
有什么方法可以在一行/两行中完成?
最佳答案
您可以做到这一点,但仅仅因为您可以在一行中做到这一点并不意味着您应该(如果您在这里太花哨,可读性就会发挥作用)。显然这里根本没有验证。
string myString = "Word 2010|82e146e7-bc85-4bd4-a691-23d55c686f4b;#Videos|55140947-00d0-4d75-9b5c-00d8d5ab8436";
string[] guids = Regex.Split(myString, ";#")
.SelectMany(s => Regex.Split(s, @"\|").Skip(1))
.ToArray();
Assert.AreEqual(2, guids.Length);
Assert.AreEqual("82e146e7-bc85-4bd4-a691-23d55c686f4b", guids[0]);
Assert.AreEqual("55140947-00d0-4d75-9b5c-00d8d5ab8436", guids[1]);
关于C# Regex.Split 和正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9264898/