Я получаю строку о работоспособности устройства, которая выглядит следующим образом:
swLUZ01 uptime is 1 year, 11 weeks, 1 day, 11 hours, 9 minutes
Я построил регулярное выражение, соответствующее первым двум записям, и поместил их в группу:
(\D+\d+) uptime is (\d+ \w+\, \d+ \w+)
Пока это работает. Теперь я хотел бы захватывать только те устройства, которые работают более 3 недель. В этом примере это работает со следующим регулярным выражением:
(\D+\d+) uptime is (\d+ \w+\, ([3-9]|\d{2}) weeks)
Но это работает, только если годы и недели каждый раз приходят в одном и том же порядке. К сожалению, время безотказной работы устройств может выглядеть следующим образом:
swLUZ01 uptime is 4 weeks, 5 days, 14 hours, 2 minutes
swLUZ01 uptime is 1 week, 2 days, 9 hours, 55 minutes
swLUZ01 uptime is 1 hour, 16 minutes
Таким образом, местоимения меняются от недели к неделе, если они употребляются в единственном числе. Есть ли регулярное выражение, которое дает мне совпадение, если есть более х недель? Это не должно давать совпадение, если не найдено недель. Мне нужен результат в группе, так как я упоминаю об этом позже в моей книге правил. (Основные политики аудита соответствия инфраструктуры)