我有一个这样的字符串列表:
List<string> list = new List<string>();
list.Add("Item 1: #item1#");
list.Add("Item 2: #item2#");
list.Add("Item 3: #item3#");
如何获取子字符串#item1#、#item2# 等并将其添加到新列表中?
如果它包含“#”,我只能通过这样做获得完整的字符串:
foreach (var item in list)
{
if(item.Contains("#"))
{
//Add item to new list
}
}
最佳答案
你可以看看Regex.Match
.如果您对正则表达式了解一点(在您的情况下,它是一个非常简单的模式:"#[^#]+#"
),您可以使用它来提取所有开始和结束的项目带有 '#'
,中间有除 '#'
之外的任意数量的其他字符。
示例:
Match match = Regex.Match("Item 3: #item3#", "#[^#]+#");
if (match.Success) {
Console.WriteLine(match.Captures[0].Value); // Will output "#item3#"
}
关于C# 从字符串中获取具有特定模式的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14870551/