C# 正则表达式解析有时在数字旁边包含额外 space 的字符串

C# regular expression to parse a string sometimes containing extra space next to the digit

我正在尝试更改常规。下面的表达式将月份和日期之间的额外 space 考虑在内,如下所示:

(?:(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}

谢谢

您可以试试这个:\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}

要完全匹配额外的 space

(?:(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}

匹配任意数量的额外 spaces

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