-1
我在檢查大括號和大括號。假設這是我的輸入打開關閉大括號檢查
{XYZ {njdjd {lkdf} FJ} JF}
當我編譯輸入開括號和右括號要分開,並存儲在列表中,我用下面的代碼
`List<Match> open=new List<Match>();
List<Match> close = new List<Match>();
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 "";
出了什麼問題?
您需要重新審視您的方法。用當前的邏輯,下面的表達式將會通過:} xyz} njdjd} lkdf {fj {jf {。這是預期的嗎? – teenboy
不只是引導我,如何比較一個列表項目與另一個列表項目 –
如果你想驗證字符串有一個平衡的開放和關閉大括號的數量,請參見[本演示](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) –