正则表达式组语法

时间:2018-02-08 14:57:25

标签: python regex parsing grouping

我目前正在编写一个python脚本,使用正则表达式解析文本文件中的信息。数据显示在以下链接中:https://regex101.com/r/fa4XTi/3

如您所见,每个属性下列出的值可以是单行也可以是多行。我的脚本正在获取每个属性和值,并将其作为{attribute:value}放入字典中。

我遇到的这个问题是我的正则表达式“或”声明是以我不期望的方式分配组。具有多行值的属性将在前一个属性下生成其他组。

    ATTRIBUTE_INSTANCE NAME="THING1" 
  {
    VALUE { CV="SOME_AMOUNT" }
  }
  ATTRIBUTE_INSTANCE NAME="UNIT"
  {
    VALUE
    {
      SET="SS_VESSEL"
      STRING_VALUE="WATER_STORAGE"
      CHANGEABLE=F
    }
  }

单位及其值正在上一场比赛的第3组和第4组中进行,而不是在他们自己的比赛中将第1组和第2组分别制作。

我正在使用的正则表达式是:

r"ATTRIBUTE_INSTANCE NAME=\"(.*)\"\n\s+{\n\s+VALUE\s+{\s+(.*)}|ATTRIBUTE_INSTANCE NAME=\"(.*)\"\n\s+{\n\s+VALUE\s+{\s+(.*\n\s+.*\n\s+.*)\n\s+}"

我的模式出了什么问题?

0 个答案:

没有答案