Split String для вложенной схемы типа Struct с использованием Java - PullRequest
0 голосов
/ 05 января 2019

Я пытаюсь разделить ввод строки, используя шаблон Regex.

String input = "id string,name string,balances struct<netincome:decimal(10,4),grossincome:decimal(10,4)," +
               "ledger:struct<id:int,month:string>>";

String seperatorRegex = ",((?![^<>]*\\>)(?![^()]*\\)))";

String[] splitInput = input.split(seperatorRegex);

Ожидаемый результат -

"id string"
"name string"
"balances struct<netincome:decimal(10,4),grossincome:decimal(10,4),ledger:struct<id:int,month:string>>"

Но используя приведенный выше код, я получаю следующий вывод -

"id string"
"name string"
"balances struct<netincome:decimal(10,4)"
"grossincome:decimal(10,4),ledger:struct<id:int,month:string>>"

Подскажите, пожалуйста, как добиться желаемого результата.

Вышеуказанное регулярное выражение работает нормально для ввода ниже -

String input = "id string,name string,balances struct<netincome:decimal(10,4),grossincome:decimal(10,4)>";

Но для вложенного типа Struct означает Struct внутри Struct (<: <: >>), он не работает. Я проанализировал, что когда «<» идет посередине, регулярное выражение не работает. </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...