Я пытаюсь разделить ввод строки, используя шаблон 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>