C#从字符串中获取具有特定模式的子字符串

bal*_*le3 6 .net c# string substring list

我有一个像这样的字符串列表:

List<string> list = new List<string>();
list.Add("Item 1: #item1#");
list.Add("Item 2: #item2#");
list.Add("Item 3: #item3#");
Run Code Online (Sandbox Code Playgroud)

如何将#strite1#,#item2#等子串添加到新列表中?

如果它包含一个"#",我只能得到完整的字符串:

foreach (var item in list)
{
    if(item.Contains("#"))
    {
        //Add item to new list
    }
}
Run Code Online (Sandbox Code Playgroud)

Bot*_*000 12

你可以看看Regex.Match.如果您对正则表达式有一点了解(在您的情况下,它将是一个非常简单的模式:) "#[^#]+#",您可以使用它来提取所有项目的开头和结尾,'#'除了'#'中间的任何数量的其他字符.

例:

Match match = Regex.Match("Item 3: #item3#", "#[^#]+#");
if (match.Success) {
    Console.WriteLine(match.Captures[0].Value); // Will output "#item3#"
}
Run Code Online (Sandbox Code Playgroud)