正则表达式拆分逗号分隔大括号,应该很容易
本文关键字:很容易 拆分 分隔 正则表达式 | 更新日期: 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();
这更能容忍支撑组之间的不同甚至混合分隔符,例如逗号空格或空格,而不仅仅是逗号。 如果您的输入字符串定义良好,那么这不会成为问题,但我更喜欢能够处理可能来自不同来源并且可能不太符合的输入。