2014-02-24 249 views
2

我想找到除方括號和引號之間的字符串中的所有括號和大括號。正則表達式匹配的括號和大括號

實例:

「{([審批] is_empty)}」

匹配{,(,)和}

「{([Appro公司(版本]等於'B} r')}「

仍匹配{,(,)和}

我也做了正則表達式匹配所有的括號和大括號,但我不能去進一步

@"[\{\}\(\)]" 
+0

[這個問題](http://stackoverflow.com/questions/133601/can-regular-expressions-be-used-to-match-nested-patterns)會給你一些洞察與正則表達式嵌套模式 – Jonesopolis

+0

@ Jonesy,.NET正則表達式實際上可以實現這一點(因爲它們不代表* regular *語言;具有平衡組 - 它們代表* context-free *語言,具有更高的計算能力。) –

回答

1

我建議到onle讀取字符串,並使用兩個布爾值,設置爲false squareBrackets和虛假報價,然後,開始讀取字符串,如果發現'[',將squareBrackets設置爲true,並且如果找到']',則再次設置爲false,並且用引號括住,然後只獲取{,} (和),而squareBrackets =真實報價=真

我希望這有助於;!d

bool squareBrackets = false; 
bool quotes = false; 

如果您喜歡並打開[或'並且不再讀取更多{,},(或)直到找到新的]或',則設置爲true。