사용언어 lex 첫번째 단계 {{{ %% [\n\t ]+ ; [a-zA-Z] { printf("%s ", yytext); } %% }}} 두번째 단계. 결국 생각을 해보니 이것 역시 FSA 라서 그저 lex 로도 해결 된다는 깨우침을 얻었음. {{{ letter [-_0-9A-Za-z] mailname {letter}({letter}|\.)*{letter} domain_name [0-9A-Za-z][-0-9A-Za-z]*[0-9A-Za-z] last_domain com|net|co\.kr mail_address {mailname}@({domain_name}\.)+{last_domain} %% [ \t\n] ; {mail_address} { printf("true.\n"); } .+ { printf("false.\n"); } %% }}} 메일주소 규칙 : 영어대소문자 숫자 하이픈 언더바 '.' 사용 가능. 단 '.' 은 시작과 끝에 지정 불가. 2자 이상. 도메인 네임 규칙 : 영어대소문자 숫자 하이픈 사용가능. 단 하이픈은 시작과 끝에 지정 불가. 2자 이상. co.co.kr 이 도메인은 적법한거 같아서 별 문제 없을거 같다. 실행 예.. {{{ zennith@zeropage:~/work/lexandyacc$ ./mailscanner asdflkhas@asdlghas.asdfkhasd.asdkjghasdf.com true. ----__--__....asdflkhasd.asdlkh@asd--asdg.co.kr true. .asdf@asgdlkh_as.comm false. }}} ---- [토이] [토이/메일주소셀렉터]