在Java中,如何在拆分期间忽略所需的字符串?

在Java中,如何在拆分期间忽略所需的字符串?,java,regex,string,Java,Regex,String,我有一根像 pchase_history:array<struct<pchase_channel:string,trans_dt:string,sku_id:string,sold_qty:bigint>>,first_pchase_dt:string,last_pchase_dt:string,trans_cnt:bigint,last_pchase_sku_cnt:bigint,no_of_pchase_days:bigint,lst_pchase_channel:a

我有一根像

pchase_history:array<struct<pchase_channel:string,trans_dt:string,sku_id:string,sold_qty:bigint>>,first_pchase_dt:string,last_pchase_dt:string,trans_cnt:bigint,last_pchase_sku_cnt:bigint,no_of_pchase_days:bigint,lst_pchase_channel:array<struct<pchase_channel:string>>
pchase\u历史:数组,第一个pchase\u dt:string,最后一个pchase\u dt:string,trans\u cnt:bigint,最后一个pchase\u sku cnt:bigint,没有第二个pchase\u天:bigint,第一个pchase\u通道:数组
我需要按“,”进行拆分,但不想拆分(结构数组)
array

我希望split方法忽略这些结构数组,并拆分字符串的其余部分

如何通过拆分方法实现这一点


任何帮助都将不胜感激。

在执行以下拆分操作之前,您可以使用正则表达式替换struct数组:

String value = "pchase_history:array<struct<pchase_channel:string,trans_dt:string,sku_id:string,sold_qty:bigint>>,first_pchase_dt:string,last_pchase_dt:string,trans_cnt:bigint,last_pchase_sku_cnt:bigint,no_of_pchase_days:bigint,lst_pchase_channel:array<struct<pchase_channel:string>>";

value = value.replaceAll("(array<struct<.*?>>)", "array");
String[] splitedValues = value.split(",");

System.out.println(Arrays.toString(splitedValues));

你有什么?你被困在哪里了?我无法使用split方法完成它的可能副本。我尝试迭代每一列,然后检查结构数组。然后使用其他方法。。
[pchase_history:array, first_pchase_dt:string, last_pchase_dt:string, trans_cnt:bigint, last_pchase_sku_cnt:bigint, no_of_pchase_days:bigint, lst_pchase_channel:array]