Использование регулярного выражения с шаблоном:
\[\w+\s\\([\d.-]+\\)\]
Для сопоставления либо «[Low (15.7)]», либо «[High (-12.7)]» путем сопоставления
a. "[" & "]" для соответствия квадратной скобке
b. "\ w +" для соответствия одному или нескольким словам (в данном случае "Low" или "High")
c. "\ s" для сопоставления с одним пробелом
d. "\ (" & "\)" для соответствия скобкам
e. [\ d .-] + для сопоставления комбинации цифр, "."& "-"
С последующим шаблоном:
[\d.-]+
Для захвата необходимого значения
Исходный код:
static void Main(string[] args)
{
string input = "Alarm Level 1 (D1) [Low (-15.7)]";
string pattern = @"\[\w+\s\([\d.-]+\)\]";
string outputA = Regex.Match(input, pattern).Value;
string outputB = Regex.Match(outputA, @"[\d.-]+").Value;
Console.WriteLine("A: " + outputA);
Console.WriteLine("B: " + outputB);
Double intOutput = Convert.ToDouble(outputB);
Console.ReadLine();
}