Пытаюсь изменить рег. приведенное ниже выражение, чтобы учесть дополнительный пробел между месяцем и днем следующим образом:

(?:(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))\s\d{1,2}\s\d{1,2}:\d{1,2}

rats 1.4K Sep  9 08:10 /opt/rats/prod ===> it returns blank
rats 1.4K Sep 12 08:10 /opt/rats/prod ===> returns "Sep 12 08:10"

If I add \s it works in the first string but it breaks on the second string:

(?:(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))\s\s\d{1,2}\s\d{1,2}:\d{1,2}

Спасибо

1
Max 21 Сен 2018 в 00:21

2 ответа

Лучший ответ

Чтобы точно соответствовать дополнительному пространству

(?:(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))\s{1,2}\d{1,2}\s\d{1,2}:\d{1,2}

Для соответствия любому количеству лишних пробелов

(?:(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))\s+\d{1,2}\s\d{1,2}:\d{1,2}
1
Ahmed Yousif 20 Сен 2018 в 21:33

Вы можете попробовать это: \s{1}\d{2} или \s{2}\d{1}

(?:(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))(\s{1}\d{2}|\s{2}\d{1})\s\d{1,2}:\d{1,2}
0
Hossein Golshani 20 Сен 2018 в 21:31