如何在java中以这种格式解析my log.txt

如何在java中以这种格式解析my log.txt,java,Java,我正在尝试解析这个特定的日志条目 “[Zone]ZoneChangeList.ProcessChanges()-处理索引=9 change=powerTask=[power=[type=TAG\u变更实体=[id=78 cardId=FP1\u 007t name=Nerubian]tag=IGNORE\u DAMAGE\u OFF value=1]complete=False] 实体=[name=Nerubian id=78区域=墓地区域pos=1卡迪=FP1\U 007t player=2]

我正在尝试解析这个特定的日志条目

“[Zone]ZoneChangeList.ProcessChanges()-处理索引=9 change=powerTask=[power=[type=TAG\u变更实体=[id=78 cardId=FP1\u 007t name=Nerubian]tag=IGNORE\u DAMAGE\u OFF value=1]complete=False] 实体=[name=Nerubian id=78区域=墓地区域pos=1卡迪=FP1\U 007t player=2]srcZoneTag=INVALID srcPos=dstZoneTag=INVALID dstPos=“

我在Java中使用扫描定界符,但问题是更改字段 它具有多个括在括号中的值

我还希望将解析后的记录放在具有其值的bean上

到目前为止,我的代码如下:

  public class HearthstoneParser {
       public void zoneParser(String line) {
          Scanner scanner = new Scanner(line);
          scanner.useDelimiter(" ");
          while (scanner.hasNext()) {
          System.out.println(scanner.next());
        }
    }

    public static void main(String args[]) {
        String zoneString = "[Zone] ZoneChangeList.ProcessChanges() - processing index=9          change=powerTask=[power=[type=TAG_CHANGE entity=[id=78 cardId=FP1_007t name=Nerubian] tag=IGNORE_DAMAGE_OFF value=1] complete=False] entity=[name=Nerubian id=78 zone=GRAVEYARD zonePos=1 cardId=FP1_007t player=2] srcZoneTag=INVALID srcPos= dstZoneTag=INVALID dstPos=";
        HearthstoneParser parser = new HearthstoneParser();
        parser.zoneParser(zoneString);
    }
   }
我想让他们有条理,他们是一组,分别用括号括起来 样本输出为:

Zone

 event = ZoneChangeList.ProcessChanges()

 index = 9

 change 
    powerTask 
        power 
      type = TAG_CHANGE
          entity
              id = 78
              cardID=Fp1_007t
          name Nerubian
          tag=IGNORE_DAMAGE_OFF
          value=1
        complete=False

  entity
      name=nerubian
      id=78
      zone=GRAVEYARD
      zonePos=1
      cardId=FP1_007t
      player=2

  srcZoneTag=INVALID
  srcPos=
  dstZoneTag=INVALID
  dstPos=

您可以添加所需的输出吗?只需使用可以配置分隔符和括号的json解析器就可以了。我想使用类似以下内容来解析它:Zone event=ZoneChangeList.ProcessChanges()索引=9更改电源任务电源类型=标记\更改实体id=78 cardID=Fp1 \ U 007t名称Nerubian标记=忽略\损坏\关闭值=1完成=假实体名称=Nerubian id=78区域=墓地区域PS=1 cardID=Fp1 \ U 007tplayer=2 srcZoneTag=无效的srcPos=dstZoneTag=无效的dstPos=