Попробуйте этот псевдокод:
char [] start = {'<','|','s','t','a','r','t','|','>' };
char [] start = {'<','|','e','n','d','|','>' };
char [] buff = new char[9];
while( true ) {
char c = readChar();
if( c == '<' ) {
buff = readChars( 9 ) ;
if( buff == start ) {
inside = true ;
skip( 9 ); // start
} else if( buff == end ) {
inside = false;
skip(7); // end
}
}
if( inside ) {
print( char ) ;
}
}
Идея состоит в том, чтобы читать до тех пор, пока вы не найдете токен и не поднимете флаг, когда флаг установлен, вы напечатаете значение, если вы найдете конечный токен, вы выключите флаг.
Должно быть несколько способов закодировать предыдущий псевдокод. Я обновлю этот ответ позже.