从定义分隔符之间的字符串中提取所有子字符串到字符串数组中

本文关键字:字符串 数组 提取 之间 定义 分隔符 | 更新日期: 2023-09-27 18:14:29

我需要某种方法,使用正则表达式或分割,我不知道,做以下。

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

ls 0 
[0,86,180]
ls 1 
[1,2,200]
ls 2 
[2,3,180]
ls 3 
[3,4,234]

…等等......我希望括号[]之间的所有内容都是字符串数组中的一个字符串,其他所有内容都忽略

从定义分隔符之间的字符串中提取所有子字符串到字符串数组中

像下面这样的正则表达式应该可以工作。

('[['d]*,['d]*,['d]*']*)

您只需要读取多个匹配项,如下所示。

这可能会给你整个想法和步骤:

var yourString = @"ls 0 
        [0,86,180]
        ls 1 
        [1,2,200]
        ls 2 
        [2,3,180]
        ls 3 
        [3,4,234]";
var result = yourString.Split(new char[] { ''n' })                //split
                       .Where(i => i.Contains('['))               //filter
                       .Select(i => i.Replace("[", string.Empty)  //prepare
                                     .Replace("]", string.Empty))
                       .ToList();
var newArray = string.Join(",", result);                          //merge the result

如果数字块不总是以三个为一组

 var myString = "ls 0 
    [0,86,190]
    ls 1 
    [1,2,300]
    ls 2 
    [2,3,185]
    ls 3 
    [3,4,2345]";
    Regex pattern = new Regex(@"'[['d,]*']*");
    Match numbers = pattern.Match(myString);
    if(numbers.Success)
    {
      do {
          var val = numbers.Value;
          // code for each block of numbers
          numbers.NextMatch();
          } while(numbers.Success)
    }