我试图在JFlex中为电子邮件编写一个正则表达式。到目前为止,我尝试了这个
L=[a-zA-Z_]+
D=[0-9]+
email=[^(.+)@(S+)$]
%{
public String lexeme;
%}
%%
{L}({L}|{D})* {lexeme=yytext(); return Identi;}
("(-"{D}+")")|{D}+ {lexeme=yytext(); return Number;}
{email} {lexeme=yytext(); return Email;}
. {return ERROR;}
当我用电子邮件进行测试时,词法分析器没有匹配任何电子邮件。如何匹配电子邮件?
我找到了解决方案:
alphaNumeric=({L}+|{L}+{D}+)+
email={alphaNumeric}"@"{alphaNumeric}"."({L}+|{L}+"."{L}+)
这是正则表达式