我有如下的日志输入行;
ng with SeqID 339708.08/17/2016 16:27:18.946 - JobID 33720: Location 15531 applied clip data successfully. Updating OCAMT_GM_Sent
或者
Retry count 008/17/2016 16:27:15.227 - JobID 33480: Location 15664 applied clip data successfully. Updating OCAMT_GM_Sent
我正在尝试使用正则表达式捕获时间字符串。到目前为止,我想出了以下内容:
[0-9]{2}+[:]+[0-9]{2}+[:]+[0-9]{2}+[.]+[\d]+$
但是还有另一种方法可以更好地捕获所述时间字符串并将其放在bash变量上以提高准确性。
您的正则表达式可以简化为
\d{2}:\d{2}:\d{2}\.\d+
这是因为[0-9]
等价于\d
,并且该[]
对在单个字符周围是多余的。至于秒和小数部分之间的文字点,建议使用进行转义\
。
如果要匹配秒部分,则可以添加一对捕获组的括号。
\d{2}:\d{2}:(\d{2}(?:\.\d+)?)
值得一提的是,此处的匹配更为笼统,因为我们不再假设应该存在小数秒部分(因此,内部非捕获组由?:
标记发出信号)。
注意:我假设整个都是PCRE口味。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句