这是我试图解析的文件的内容。
# 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,它已经为您完成了此操作。