当前位置: 首页 > 编程语言 > C#

c#验证字符串是否包含匹配的括号分享

时间:2023-04-10 22:35:03 C#

c#验证字符串是否包含匹配的括号如果我有这样一个字符串..."123[1-5]553[4-52]63244[19-44]"...验证的最佳方法是什么:每个左括号都有匹配的近括号不超过3组括号没有嵌套括号(即[123-[4]9])正则表达式是否能够验证所有这些场景?如果没有,LINQ怎么样?由于不允许嵌套,因此可以使用正则表达式:^([^[]]*[[^[]]*]){0,3}[^[]]*$解释:最后,[^[]]*匹配更多可选的非括号字符之后的所有组最快的方法是遍历字符串boolValidate(stringinput){intbraceBalance=0;intopenCount=0;对于(inti=0;i3)返回false;//多于3对if(input[i]==']')braceBalance--;//检查嵌套:if(braceBalance1)returnfalse;}返回(braceBalance==0);//检查打开和关闭次数是否相等}RegEx和Linq的开销都比这大(尽管根据您的应用程序,这可能无关紧要)。只是为了看看它是否有意义,这里有一个LINQ:y解决方案:bool[]b=input.Where(c=>c=='['||c==']').Select((c,i)=>(c=='[')==(i%2==0)).ToArray();boolvalid=b.Length%2==0&&b.Lengthi);过滤掉[和]字符,然后检查是否只有交替的括号(以[]开头,偶数,不超过6个。以上是C#学习教程:c#验证字符串是否包含匹配的括号。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: