regex 用于从不同模式事件中仅提取第一个IP的正则表达式

hec6srdp  于 2023-01-27  发布在  其他
关注(0)|答案(1)|浏览(118)

我正试图通过正则表达式从下面的事件中提取第一个IP-

For: ${nd:app://${namingDetails}.for.net.sh}, 4.5.3.2, 23.200.06.110 V-
For: 10.10.21.17, 5.18.11.74, 23.36.3.22 V-
For: 23.3.39.1, 21.61.39.21 V-
For: 3.3.39.1 V-

因此,如果我们考虑上述事件,我的正则表达式应该匹配以下IP作为first_ip

4.5.3.2
10.10.21.17
23.3.39.1
3.3.39.1

任何帮助都将不胜感激。谢谢。
这就是我能走多远-〉https://regex101.com/r/6K3AKX/1

(?:For:\s)?(?:For:.+)?((?<first_ip>\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}))\,
olhwl3o2

olhwl3o21#

您可以使用此正则表达式:

^For:\s.*?\b(?<first_ip>\d{1,3}(?:\.\d{1,3}){3})

并抓取命名的捕获组first_ip

    • RegEx详细信息:**
  • ^:开始
  • For:\S:匹配后跟空格的For
  • .*?\b:匹配0个或多个后跟单词边界的任意字符
  • (?<first_ip>\d{1,3}(?:\.\d{1,3}){3}):匹配命名捕获组first_ip中的IP地址

Updated RegEx Demo
如果你使用的是php/PCRE,那么使用:

^For:\s.*?\K\b\d{1,3}(?:\.\d{1,3}){3}

相关问题