我有以下表達式:正則表達式模式匹配一個數學表達式
"3 + 2 * ((1 + 1 - (2 + 4))) + 112 * 31 - ((1+1) - 14 + 1)"
我想與頂層parentesis
例如分割表達式:
String Expression = "3 + 2 * ((1 + 1 - (2 + 4))) + 112 * 31 - ((1+1) - 14 + 1)";
String[] result = Regex.Split(expression, "??");
預期輸出:
//result[0] = 3 + 2 *
//result[1] = (1 + 1 - (2 + 4))
//result[2] = + 112 * 31 -
//result[3] = 3 + 2 *
//result[4] = (1+1) - 14 + 1
你最好爲此編寫一個解析器(或者,最好的,只搜索一個 - 有一個好的已經在那裏)。算術就像html - 不是_regular_。 –
什麼是「休閒表達」?它只是一個錯字,或者這是某種符號? –
我同意Joel的觀點,但如果你真的想在正則表達式中做到這一點(如果你正在尋找一個挑戰和/或你恨自己) - 你可能會對.NET的平衡模式匹配感興趣。但正如Joel所說,Lexer/Parser是更好的選擇。 – vcsjones