Как игнорировать пробелы в начале каждой строки

При поиске строки использую след. регулярное выражение

 Regex RegexPattern = new Regex(@"^Link is down for (?<day>.*)$\n",
            RegexOptions.Compiled | RegexOptions.Multiline);

 Match match = RegexPattern.Match(result);
 Console.WriteLine(match.Groups["day"].Value);

но так не находит ,а находит если убрать 2 пробельных символа

Есть след. строка для парсинга:

show interfaces GigabitEthernet 1/0/20
gigabitethernet1/0/20 is down (not connected)
  Interface index is 68
  Hardware is gigabitethernet, MAC address is e8:28:c1:36:31:22
  Interface MTU is 1500
  Link is down for 75 days, 1 hours, 33 minutes and 42 seconds
  Flow control is off, MDIX mode is unknown

Ответы (1 шт):

Автор решения: Wiktor Stribiżew

Вы можете использовать

^[^\S\r\n]*Link is down for (?<day>.*)
// или
^[\s-[\r\n]]*Link is down for (?<day>.*)
// или
^[\p{Zs}\t]*Link is down for (?<day>.*)

В этом регулярном вырадежении

  • [^\S\r\n]* находит ноль и более символов, отличных от непробельных символов, а также символов перевода строки LF и CR
  • [\s-[\r\n]]* - то же, что и шаблон выше (ноль и более пробельных символов за исключением символов перевода строки LF и CR
  • [\p{Zs}\t]* - ноль и более "горизонтальных" пробельных символов + символ табуляции (по неизвестной мне причине \t не входит в символьный класс Юникода \p{Zs}).
→ Ссылка