C# - Regex + LINQ - получение числа из строки по шаблону
Имеется переменная в которой содержится информация об ошибке запроса по URL
string returnMessage = "FAIL! Invalid resources: Type{Value=300}, expected=Resources{Value=4000}, Home=1, exist=Resources{Value=4000}, sub=Resources{Value=4000}";
Как более корректно получить числовое значение строки expected=Resources{Value=4000} ?
Я использовал следующий код:
int valueForGetResourses = -1;
int.TryParse(string.Join("", Regex.Matches(returnMessage, @"expected=Resources{\w*=\w*}")
.OfType<Match>()
.First()
.ToString()
.Where(c => char.IsDigit(c))), out valueForGetResourses);
Однако если будет expected=Resources{}, то выбрасывается исключение. Можно сделать так, что бы в случае отсутствия по шаблону переменная оставалась -1 ?
Или как более правильно организовать поиск по этому шаблону?