Если вы хотите, чтобы текст между тегами, вам нужно игнорировать теги и захватить весь другой текст, который не отмечает начало тега:
TAG <[^>]*>
ALLBUTSTARTOFTAG [^<]*
%%
{TAG} ; // do nothing, i.e. ignore a tag
{ALLBUTSTARTOFTAG} {printf("%s\n", yytext); } // print the text until a tag starts
%%
Затем, следующая функция
int main(){
char string[] = "before any tag<html>between html and body<body>body content</body>between body end and html end</html>after html end";
YY_BUFFER_STATE buffer = yy_scan_string(string);
yyparse();
yy_delete_buffer(buffer);
return 0;
}
отпечатки:
before any tag
between html and body
body content
between body end and html end
after html end