我在rex查询中遇到了一些问题,在这个查询中,一位数的日期会呈现不正确的结果,但两位数的日期会提供正确的结果。
以下是我要查询的日志条目:
Mar 7 14:24:29 10.52.176.215 Mar 7 12:24:29 963568 - Melbourne details-cable-issue - vdvfvfv
Mar 20 09:52:55 10.52.176.215 Mar 20 07:52:55 963569 - Brisbane cable-issue下面是查询:
^(?:[^ \n]* ){7}(?P<extension>[^ ]+)[^\-\n]*\-\s+(?P<location>\w+)对于MAR7条目,我的查询给我的组分机号是"7“,而我的MAR20条目给我的组分机号是"963569”,这是正确的。
有没有人能解释我的问题,确认一个个位数和两位数的日期?#7 vs 20
感谢所有人:)
发布于 2019-03-25 05:44:12
在第一个字符串中有几个连续的空格(它们看起来像填充空格),并且由于您只匹配(?:[^ \n]* )中的一个空格,所以得到的结果是不匹配的。
我建议在第一组中匹配一个或多个空格,并调整限制限定符:
^(?:[^ \n]* +){5}(?P<extension>[^ ]+)[^-\n]*-\s+(?P<location>\w+)
^ ^请参阅regex demo
https://stackoverflow.com/questions/55328823
复制相似问题