ANTLR4:表达式中的符号“*”和“+”

ANTLR4: Symbols '*' and '+' in the expressions

我正在学习如何通过 antlr 编写编译器程序。我环顾四周以了解一些相关信息,所以我最终找到了 this

我想问的是,每个符号的作用是什么? 表达式中的'?'、'+'和'*',它们在做什么?

FLOAT
 : [0-9]+ '.' {_input.LA(1) != '.'}?
 | [0-9]* '.' [0-9]+
 ;

INT
 : [0-9]+
 ;

你们知道从哪里开始学习这些表达吗?

这些符号是正则表达式的一部分,请参阅 tutorial python 中关于正则表达式的内容(所有语言都非常相似)。
* 表示匹配前一个事物零次或多次,例如,a* 将匹配 aaa、...
+ 表示匹配前一个事物一次或多次,例如 a+ 将匹配 a, aa, ...
? 表示匹配前一个事物零次或一次,例如 a? 将匹配 a.