使用Java

时间:2019-01-04 21:25:20

标签: java arrays regex struct

我正在尝试使用正则表达式模式拆分String的输入。

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无法正常工作。我已经分析过,当中间出现“ <”时,正则表达式无法正常工作。

0 个答案:

没有答案