我目前正在编写一个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+}"
我的模式出了什么问题?