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

标签 c# .net string list substring

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

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/

相关文章:

R:计算每个单元格中有多个单词的列中的唯一单词

c# - 当文件的内容也带有希伯来字母时,如何使用 openFileDialog 打开文本文件?

c# - OrderBy 不工​​作

c# - 使用 ConfigureAwait(false) 和 Task.Run 有什么区别?

c# - 我如何做等效的 TaskCompletionSource<nothing>?

javascript - 用于分割字符串的复杂正则表达式

c# - 直接从 linq 查询返回类

c# - 将 int 从 aspx.cs 传递到 aspx 页面

.net - 将具有 CSV 格式的 PowerShell 对象直接写入 FTP

python - 无法从长字符串中剔除不需要的字符