我正在搜索正则表达式,只显示以下字符串
的IP地址LAN_10.100.10.41_fc3 / 7
我需要输出如下
10.100.10.41
提前致谢..
答案 0 :(得分:1)
我认为最简单的捕获组。像这样:
.+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).+
以上假设您正在使用类似C ++或C#的内容进行解析和显示。因此,显示结果是您的“语言”的功能。如果它在数组中捕获,则相应地显示它。有时会显示\1
。您必须阅读该答案的文档。
然而,正如Steven所指出的,如果你正在使用shell脚本和grep,那么这样的东西也应该足够了:
grep -o "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}" -
这确实假设Linux和BASH,所以如果你使用的是Windows,请查看使用Powershell可以实现的功能。 -o
表示“仅打印行的匹配部分”,而-
是STDIN
的BASH表示法。在不知道您正在使用哪种工具的情况下,很难更具体。顺便说一句,我发现的最好的正则表达式测试网站is Regexr。
答案 1 :(得分:0)
要使用环顾四周断言从字符串中提取IP地址,请使用以下正则表达式。
正则表达式:/(?<=._)[\d.]+(?=_.)/g
<强>解释强>:
(?<=._)
会查找以_
开头的任何内容,它出现在字符串的模式中。
(?=_.)
会查找显示在字符串中的_
后面的任何内容。
[\d.]+
查找尽可能多的digits
和dots
,它们构成了IP地址的模式。
它仅匹配LAN_
10.100.10.41
_fc3/7
仅作为IP地址的中间部分。
<强> Regex101 Demo 强>