2016-08-04 2 views
0

У меня есть специальный тег как «{code}». Мне нужно получить текст между двумя тегами, используя jflex.Как получить текст между специальными тегами с помощью jflex

Я пытаюсь использовать следующее регулярное выражение для этого

CODE_BLOCK= "{code}"(.*?)"{code}" 

Проблемы заключается в том, что она всегда возвращает текст между только первым последними тегами. Похоже, ? не работает вообще. Мне нужно, чтобы иметь возможность получить только

{code}abs{code} 

из

{code}abs{code}{code}{code} 

ответ

0

Там в несколько различных вариантов здесь:

Если скобка скобка ({) символ не появляется в тексте , вы можете пойти с {code}([^{]+){code} в качестве вашего регулярного выражения.

Если это так, и он сбежал, вы можете сделать что-то вроде {code}((?:[^{]|\\{)+){code}. Замените \\ на соответствующий escape-символ (в этом случае я пошел с обычным соглашением буквального символа обратной косой черты).

Если он появляется между тегами, и он не экранирован, вы можете захотеть написать правильный парсер, потому что регулярное выражение на самом деле не вырезано для такого рода вещей.

Смежные вопросы