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