gpt4 book ai didi

c# - 正则表达式,匹配不同数量的集合

转载 作者:行者123 更新时间:2023-11-30 22:34:33 24 4
gpt4 key购买 nike

我有一个程序希望捕获格式化的字符串输入。输入看起来像

{1, 2, 3, 4, 5, 6, 7}

可以有不同数量的数字,只要它们都在集合内即可。例如:

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

都是有效的。但是,我需要能够访问该集合中的每个数字。我有以下代码

Match match = Regex.Match(input, @"\{(\d,\s)*(\d)\}", RegexOptions.IgnoreCase);

if (match.Success)
{
String s;

for(int i = 0; i < match.Groups.Count; i++)
{
s = match.Groups[i].Value;
// Do actions here
}
}

匹配很好,但是,我只能访问集合中的最后一个和倒数第二个数字。我希望能够读取集合中每个成员的值。我该怎么做呢?除了正则表达式之外的其他东西会更好吗?

最佳答案

Would something other than regex work better?

虽然正则表达式对于捕获大括号括起来的字符串最有帮助,但在您获得它之后使用简单的命令式代码来获取其中的数字会更容易。

我将从正则表达式 \{([^\}]*)\} 开始,以获取任何以“{”开头并以“}”结尾的字符串的内部部分(没有'}' 之间)。然后,您可以使用逗号分隔来处理捕获以获取其中的数字,然后根据需要修剪空白。

关于c# - 正则表达式,匹配不同数量的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7780191/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com