我会先放上我的 lex 代码(仅限 lex 正文)。
%%
ps {BEGIN STATE1;}
. ;
<STATE1>^[0-9] print("number after ps".)
使用此代码,我试图在字母“ps”之后匹配一个数字。这就是我使用 ^ 字符的原因。但是代码不匹配任何正确的字符串,如 ps3、ps4fd、ps554 等。然后我删除了 ^ 并尝试了但它工作但也匹配了 pserd7、psfh45、psfhdjh4er 等字符串。
我知道我可以在不使用状态 (ps[0-9].*) 的情况下解决问题。但我必须对各州这样做。我怎样才能解决这个问题?谢谢....