Regex来匹配配置文件中未注释的行,并且只从字符串中捕获IP地址



这是我试图解析的文件的内容。

# nameserver 3.3.3.3
nameserver 1.1.1.1
nameserver 2.2.2.2

到目前为止,我有以下内容:

^[^#].*b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)b

忽略注释行,但匹配nameserver 1.1.1.1和nameserver 2.2.2.2

理想情况下,我想只匹配没有注释掉的行,并且只匹配IP地址,因为字符串的名称服务器部分对我不重要。

我在StackOverflow上找到了一些正则表达式,它将完成一个或另一个,但不是两个。

如果你能告诉我哪里做错了,那就太好了。

谢谢每一个人。

使用捕获组( ... )捕获整个IP:

^[^#].*?b((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))b

看到

您还可以查看Regexp::Common::net,它已经为您完成了此操作。

相关内容

  • 没有找到相关文章

最新更新