Присвойте регулярному выражению имя переменной и используйте его в другом регулярном выражении - PullRequest
0 голосов
/ 03 октября 2018

Итак, во flex я пытаюсь назначить следующее:

ID     letterletter*
NUM    digitdigit*
letter [a-zA-Z]
digit  [0-9]

Но flex говорит мне, что ID и NUM - нераспознанные правила.Один из способов обойти это - установить идентификатор на [0-9][0-9]*, но я хочу использовать буквы и цифры.

Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Вам не нужно делать такие вещи, это не нужно.Вы можете просмотреть шаблон, завернутый в группу, например: ([a-zA-Z])(?1).(?1) повторяет первый шаблон и соответствует qw, er, ty в qwerty.

Демо

Поэтому вместо попытки "построить"«Ваш шаблон из повторяющихся частей, вы можете использовать рекурсивные вызовы.

0 голосов
/ 03 октября 2018

Попробуйте:

ID     {letter}{letter}*
NUM    {digit}{digit}*
letter [a-zA-Z]
digit  [0-9]

То же самое относится к ID и NUM, везде, где вы их используете.

...