Я пытаюсь преобразовать список с ключом TCL в Java HashMap
и вам нужно использовать регулярные выражения, чтобы разбить фрагменты текста. Образец текста я использую это:Использование регулярных выражений для соответствия повторяющейся последовательности
{ID {{NAME X } {HUB 0 } {NUM 14226188 }}} {SRCID {{NAME XY } {HUB 0 } {NUM 14226136 }}} {TYPE DATA }
Здесь существует три различных группы ID, SRCID и TYPE. Я попытался использовать regexp {.*?}
, но первые две группы разбиваются. Если я использую только {.*}
, тогда вся строка будет соответствовать единице, а не трем. Любые предложения о том, что я должен попробовать дальше?
Я не думаю, что регулярное выражение - это способ пойти в вашем случае. Вам лучше сканировать каждый символ строки, и если это фигурная скобка, рассмотрите ее как новый объект (или часть объекта). –
Вам, вероятно, нужно написать простой рекурсивный парсер спуска для этого: http://en.wikipedia.org/wiki/Recursive_descent_parser –
@MikhailVladimirov no вам не нужно использовать парсер. Ввод ** согласован ** (* паратезис сбалансированы *). 'regex' прекрасно выполнит работу. – Anirudha