用于scheme类型输入的java正则表达式
我正在编写一个java程序,它将根据scheme类的输入进行操作
语言方面
差不多
(+ (+ a b))
假设我现在想检查语法,比如如果有两个括号已经打开,那么必须有另外两个结束括号。我不知道如何用正则表达式实现这一点。你能帮我吗
你可以在下面搜索框中键入要查询的问题!
我正在编写一个java程序,它将根据scheme类的输入进行操作
语言方面
差不多
(+ (+ a b))
假设我现在想检查语法,比如如果有两个括号已经打开,那么必须有另外两个结束括号。我不知道如何用正则表达式实现这一点。你能帮我吗
# 1 楼答案
正则表达式不能将括号配对到任意深度。Scheme语法不规则
http://en.wikipedia.org/wiki/Regular_language#The_number_of_words_in_a_regular_language
你必须对它进行标记化,然后遍历标记计数帕伦深度,确保最后深度为零,并且永远不会为负
对于一种简单的语言,它有括号、空格和由字母“a”的重复组成的标识符,你可以这样做