Я своего рода новичок в Regex, я создал Regex для сопоставления номера, эксплуатации и идентификатор, но я не мог управлять, как распознать следующий маркер является язык ключевых слов, например, как:Regex: Я не могу создать Regex для соответствия ключевых слов?
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
INT Identi
NUM ... Идентификаторы
........
Как создать другое регулярное выражение, чтобы соответствовать некоторым ключевым словам, как int, double, ....
?
При необходимости, я опубликую полный код этой программы.
Ну, я думаю, вам просто нужно сопоставить ключевые слова перед сопоставлением идентификаторов. Все, что остается, является идентификатором. Само регулярное выражение должно быть таким же простым, как '\ b (int | double | boolean | ...) \ b' –
@JohannesH. : Я пробовал это, но он тоже не работает. –
@ JohannesH. Теперь это работает :) спасибо –