基本上我正在为我们的编译器课程创建一个简单的解释器。当然,这不是一个家庭作业类型的问题。
后面有星号的任何内容都被视为注释,前提是它不是字符串的一部分。我的解释器中有一个转义字符,它是括号。
这些是我的解释器的示例语法
* hello world
OUTPUT: "This is asterisk [*]" * outputs string
OUTPUT: "This is asterisk *" * outputs string produces syntax error
x = "[*]" & "hello" & "[*]*]" this is already comment which produces syntax error
当我尝试运行它时Regex
[^\[]\*.*
它与以下内容相匹配:
* hello world
* outputs string
*" * outputs string produces syntax error
]*]" this is already comment which produces syntax error
我的问题是,为什么regex
“吃”之前有一个字符?我已经需要的地方
* hello world
* outputs string
*" * outputs string produces syntax error
*]" this is already comment which produces syntax error