我对正则表达式有点陌生,我创建了正则表达式来匹配数字、操作和标识符,但我无法管理如何识别下一个标记是语言关键字,例如:
int or double or public .....
.
这是我的代码:
enum TokenType{
NUMBER("-?[0-9]+.[0-9]+|-?[0-9]+"), //int and double
OPERATION("[*|/|+|-]"), // arithmetic operations
WHITESPACE("[ \t\f\r\n]+"), // white space
IDENTI("[_]*[A-Za-z][A-Za-z0-9]*[[_]*[A-Za-z0-9]*]*"),// string like _string_string_..
//......
这里的问题是每个关键字都int
将是一个标识符,例如,如果我们有
public static int NUMBER_OF_STUDENT;
输出:
公共 IDENTI
静态 IDENTI
int IDENTI
NUM... IDENTI
........
如何创建另一个正则表达式来匹配一些关键字,例如int, double, ....
?
如果需要,我将发布该程序的全部代码。