正则表达式拆分逗号分隔大括号,应该很容易

本文关键字:很容易 拆分 分隔 正则表达式 | 更新日期: 2023-09-27 18:30:35

致所有人:我有这个字符串:

"{1,2,3},{4},{3}"

我想拆分成这样的数组:

    {1,2,3}
    {4}
    {3}

我正在使用的模式",'{([^)]*)'},"只是部分工作,并给了我一个数组:

    {1,2,3}
    4
    {3}

我正在这样做:

string[] strs = Regex.Split(string, pattern)

无法弄清楚我错过了什么,因此第二个值缺少大括号。我一直在用头撞墙。 任何帮助将不胜感激。

谢谢!

正则表达式拆分逗号分隔大括号,应该很容易

您可以使用

以下正则表达式进行拆分:

(?<='}),(?='{)

这将匹配前面有 } 并在它们后面有}的所有逗号,

正则表达式英雄演示

你可以使用 split 并添加你放出的 pare :

string[] splitted = str.Split("},{");

for(int i = 0; i < splitted.Count ; i++)
{
  if(i != 0)
  {
     Console.WriteLine("{");
  }
  Console.WriteLine(curr[i]);
  if(i != splitted.Count - 1)
  {
      Console.WriteLine("}");
  }
}

"纯正则表达式"的答案是这样的:

        string str = "{1,2,3},{4},{3}";
        string[] strs =
            Regex.Matches(str, @"({.*?})")
                 .OfType<Match>()
                 .Select(m => m.Groups[0].Value)
                 .ToArray();

这更能容忍支撑组之间的不同甚至混合分隔符,例如逗号空格或空格,而不仅仅是逗号。 如果您的输入字符串定义良好,那么这不会成为问题,但我更喜欢能够处理可能来自不同来源并且可能不太符合的输入。