因此在flex中,我尝试分配这些:
ID letterletter*
NUM digitdigit*
letter [a-zA-Z]
digit [0-9]
但是flex告诉我ID和NUM是无法识别的规则。绕过此问题的一种方法是将ID设置为[0-9][0-9]*
,但我想使用字母和数字。
这可能吗?
答案 0 :(得分:1)
尝试一下:
ID {letter}{letter}*
NUM {digit}{digit}*
letter [a-zA-Z]
digit [0-9]
在任何使用ID和NUM的地方都一样。
答案 1 :(得分:0)
您不需要这样做,这是不必要的。您可以递归包装在组中的模式,例如:([a-zA-Z])(?1)
。 (?1)
重复第一个模式并匹配qw
中的er
,ty
,qwerty
。
因此,您可以尝试使用递归调用,而不必尝试通过重复部分来“构建”模式。