Вы получаете совпадение для всей строки, потому что вы используете .*
после сопоставления начального текста.
Из вашего примера кажется, что вы хотите получить 3 группы захвата, используя начало SNMPv2-SMI::enterprises.37447.2.1.1.1
и укажите последнее число, которое может быть 1, 7 или 8.
Это может показаться большим шаблоном (и его можно укоротить), но вы можете использовать отрицательный прогноз, чтобы проверить, не соответствует ли строкасодержит значение, которое вы хотите сопоставить.
Если это не так, сопоставьте всю строку.Иначе захватите значение между двойными кавычками в группе.
SNMPv2-SMI::enterprises\.37447\.2\.1\.1\.1 [^"]+"([^"]+)"(?:\n(?!SNMPv2-SMI::enterprises\.37447\.2\.1\.1\.7).*)*\nSNMPv2-SMI::enterprises\.37447\.2\.1\.1\.7[^"]+"([^"]+)"\nSNMPv2-SMI::enterprises\.37447\.2\.1\.1\.8 [^"]+"([^"]+)"
См. Демонстрационную версию regex
Чтобы получить свой результат в Javascript, вы можете использовать эти 3 группы захвата:
const regex = /SNMPv2-SMI::enterprises\.37447\.2\.1\.1\.1 [^"]+"([^"]+)"(?:\n(?!SNMPv2-SMI::enterprises\.37447\.2\.1\.1\.7).*)*\nSNMPv2-SMI::enterprises\.37447\.2\.1\.1\.7[^"]+"([^"]+)"\nSNMPv2-SMI::enterprises\.37447\.2\.1\.1\.8 [^"]+"([^"]+)"/;
const str = `SNMPv2-SMI::enterprises.37447.2.1.1.1 type=4 value=STRING: "Test warn level"
SNMPv2-SMI::enterprises.37447.2.1.1.2 type=4 value=STRING: "WARN"
SNMPv2-SMI::enterprises.37447.2.1.1.3 type=4 value=STRING: "PSBA2STOR051"
SNMPv2-SMI::enterprises.37447.2.1.1.4 type=4 value=STRING: "AF-201969"
SNMPv2-SMI::enterprises.37447.2.1.1.5 type=4 value=STRING: "PSBA2STOR051"
SNMPv2-SMI::enterprises.37447.2.1.1.6 type=4 value=STRING: "117813866"
SNMPv2-SMI::enterprises.37447.2.1.1.7 type=4 value=STRING: "test"
SNMPv2-SMI::enterprises.37447.2.1.1.8 type=4 value=STRING: "test"`;
let res = str.match(regex);
console.log(`${res[1]}:${res[2]}-${res[3]}`)