我在检查大括号和大括号。假设这是我的输入打开关闭大括号检查
{XYZ {njdjd {lkdf} FJ} JF}
当我编译输入开括号和右括号要分开,并存储在列表中,我用下面的代码
`List open=new List();
List close = new List();
MatchCollection openbrace = Regex.Matches(MELEdtior, "{");
foreach(Match o in openbrace)
{
open.Add(o);
}
MatchCollection closebrace = Regex.Matches(MELEdtior, "}");
foreach(Match c in closebrace)
{
close.Add(c);
}
这是完美的工作,我有两个单独的列表与开放和紧支撑。
现在我想比较两个列表,并将打开和关闭大括号对。如果任何人打开或关闭错过了这一对意味着要显示错误。因为我用于每个循环。我所面对的意思是一个开放的大括号,用来检查所有的大括号。但我想用一个大括号检查开放式支架。
if(open.Count==close.Count)
{
foreach(var openi in open)
{
foreach(var closei in close)
{
if(openi != closei)
{
}
else { return "failed"; }
}
}
}
else{return "count failed";}
return "";
出了什么问题?
+0
您需要重新审视您的方法。用当前的逻辑,下面的表达式将会通过:} xyz} njdjd} lkdf {fj {jf {。这是预期的吗? –
+0
不只是引导我,如何比较一个列表项目与另一个列表项目 –
+0
如果你想验证字符串有一个平衡的开放和关闭大括号的数量,请参见[本演示](http://ideone.com/9lVzTV) 。 [Regex demo](http://regexstorm.net/tester?p=%5e%5b%5e%7b%7d%5d*(%3f%3a%7b(%3f%3e%5b%5e%7b%7d %5D%7C(%3F%3CO%3E%7B)%7C(%3F%3CO%3E%7D))*(%3F(O)(%3F!))%7D)*%5B%5E %7b%7d%5d *%24&i =%7bddd%7bddd%7dddd%7d) –