一个简单的正则匹配问题

我有一个字符串,我想使用正则匹配出日志里面的时间,字符串为

INFO: 2018-12-05 13:49:31 ip[10.26.100.4] token[18167782963] [application]    Jupiter http://i.jupiter.baidu.com/api/tags/info?cate_id=530&sort=-weight postData:[]    "Jupiter.url"

我使用

(?<=^(\w+:\s)).{19}(?=\s)

是能匹配出2018-12-05 13:49:31的。但是我的字符串变成了

web11-online.mars.baidu.com INFO: 2018-12-05 13:49:31 ip[10.26.100.4] token[18167782963] [application]    Jupiter http://i.jupiter.baidu.com/api/tags/info?cate_id=530&sort=-weight postData:[]    "Jupiter.url"

即前面多了一个

web11-online.mars.baidu.com 

再使用上面的正则就匹配不出来了,哪位大神能告诉我为什么并给我一个能匹配的正则表达式,多谢

阅读 2.1k
3 个回答

用这个 (?<=(w+:s)).{19}(?=s)
^代表开头,所以去掉就好了,你这里断言断在开头的INFO:上了

(?<=:\s)\d{4}([-\s\/]?)\d{2}\1\d{2}\s\d+(?::\d+){2}

python可以这么写

新手上路,请多包涵

(d{4}-d{2}-d{2} d{2}:d{2}:d{2})

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题