signals.Signals$MsgSig:
cmdResponse {
ap {
.....
req {
Id: 192
.......
}
res {
Status: Received
.........
Id: 192
.........
}
...
}
....
}
sysContainer
signals.Signals$MsgSig:
cmdResponse {
ap {
.....
req {
Id: 192
.......
}
res {
Status: VALID
.........
Id: 192
.........
}
...
}
....
}
sysContainer
signals.Signals$MsgSig:
cmdResponse {
ap {
.....
req {
Id: 193
.......
}
res {
Status: Received
.........
Id: 193
.........
}
...
}
....
}
sysContainer
signals.Signals$MsgSig:
cmdResponse {
ap {
.....
req {
Id: 193
.......
}
res {
Status: VALID
.........
Id: 193
.........
}
...
}
....
}
sysContainer
Я пытаюсь реализовать негативный взгляд на поиск. Сигнал начинается с сигналов $ MsgSig: и заканчивается на sysContainer. Мне нужно отфильтровать на основе IdValue и Status.Отрицательные результаты поиска по сравнению с предыдущим матчем
Status = "VALID"
IdValue = "193"
aFile = File.read('C:\Users\Documents\Application.log')
aFile.match(/(?x)Signals\$MsgSig:\n((?!Signals\$MsgSig:).)*?
Id:\W+#{IdValue}\n((?!Signals\$MsgSig:).)*?sysContainer\s\{/m).to_s
Здесь я хочу получить конкретный MsgSig: tat имеет значение Id 192 и статус как действительный. В приведенном выше регулярном выражении, где я должен добавить поиск «status».
Если добавить поиск, как показано ниже, он совпадает с первой MsgSig с IdValue 192.
aFile.match(/(?x)Signals\$MsgSig:\n((?!Signals\$MsgSig:).)*?
Id:\W+#{IdValue}(.*?)autoProgramStatus:\W+#{apStatus}((?! Signals\$MsgSig:).)*?sysContainer\s\{/m).to_s
Пожалуйста, дайте мне знать, что я делаю неправильно здесь.