首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex:需要一个替代方案来进行积极的查找。

问Regex:需要一个替代方案来进行积极的查找。
EN

Stack Overflow用户
提问于 2020-01-22 07:12:32
回答 2查看 175关注 0票数 0

我有一个regex搜索日志文件中的IP地址。我是用积极的眼光看这个。我希望在包含phpExecution的行中获取IP地址。我的判罚是

代码语言:javascript
复制
(?<=.*sqlExecution.*"ip":")[^"]+

问题是我们正在使用的日志分析工具(graylog)不支持回溯。此regex适用于VSCode搜索和在线regex测试人员。但在灰色日志中,它不起作用。

对于这个正则表达式,没有回头看的情况下还有其他的选择吗?

样本日志线:

<200> Nov 16 14:36:10 phpExecution INFO: Php Execution {"ip":"33.333.333.33","workspace":"gasqazvin","timeZone":"2019-11-16 14:11:10","usrUid":"","action":"phpExecution","filename":"/var/www/html/pm/shared/sites/work/public/1244635345345/23425452.php","url":"/syswork/fa/modern/1244635345345/23425452.php?"}

它不仅仅是IP字段,我必须对所有字段都这样做,比如workflow、timezone、.。所以这可能不仅仅是数字。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-22 07:25:03

您可以尝试这种模式phpExecution.+"ip":\s*"([^"]+)。

解释:

phpExecution -匹配phpExecution字面意思

任何字符的.+ - 1+

"ip": -匹配"ip":字面意思

白色空间的\s* - 0+

"([^"]+) -匹配"字面意思,然后1+字符从"的其他,并存储在第一捕获组-这将是您想要的价值。

请注意,可以将任何字段名替换为ip。

演示

票数 1
EN

Stack Overflow用户

发布于 2020-01-22 07:32:25

这里有一个解决方案:

代码语言:javascript
复制
\"ip\":\"([^\"]+)\".+\"action\":\"phpExecution\".+

假设如下:phpExecution总是位于JSON中的IP地址之后

演示:https://regex101.com/r/6rJcia/1

请注意,我建议在这项工作中使用JSON解析器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59854420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档