像这样的表达式 (3+2)+23/12-(43/54) 在 java 中的正则表达式是什么用户将无法放置右括号。如果创建了 3 次左括号,则用户只能放置 3 次右括号,以关闭由左括号打开的表达式。
谢谢
像这样的表达式 (3+2)+23/12-(43/54) 在 java 中的正则表达式是什么用户将无法放置右括号。如果创建了 3 次左括号,则用户只能放置 3 次右括号,以关闭由左括号打开的表达式。
谢谢
这不是你可以用正则表达式表达的东西。
为此,您需要一个上下文无关语法。
另请参阅此处:
http://en.wikipedia.org/wiki/Context-free_grammar
在“格式良好的括号”部分下。
您最好的选择是使用词法分析器和解析器。在 Java 世界中,最受欢迎的是 ANTLR 和 JavaCC。
首先以 Backus-Naur 形式 [BNF] 为您的计算器语言建模。然后翻译成您选择的词法分析器,并使用解析器对结果进行操作。