我试图在消息中的10.0.0.0 ip地址之前删除我的示例中95所用的时间。有时消息具有最后的IP,有时我不需要在所有情况下选择95。我试着做一个数字期待,就像我选择最后一个IP一样,但它没有按预期运行。
示例日志消息:
2019-04-15 19:48:21 2.2.2.2 POST /Communication/Service.svc - 8604 - 1.1.1.1 - - 200 0 0 95 10.0.0.0
任何有关如何使用正则表达式执行此操作的帮助将不胜感激。
这就是我尝试过的:
enter code here
(\ d +)(?!\ d +)
但是这会选择以下内容:
我该如何选择时间?
您可以使用负面的lookbehind断言,左边的内容不是非空白字符。
对于ip号,您可以选择使用类似ip的格式。请注意,它可以匹配超过ip范围。如果你想要一个更精确的匹配,this page可能会有所帮助。
(?<!\S)\d+(?=(?: \d{1,3}(?:\.\d{1,3}){3})?$)
(?<!\S)
负向lookbehind,断言左边的直接是不是非空白字符\d+
匹配1+位数(?=
积极向前看,断言右边是什么
(?: \d{1,3}(?:\.\d{1,3}){3})?
可选择匹配空格,1-3位数字,重复3次匹配点和1-3位数$
Assert字符串的结尾)
关闭积极向前看