正则表达式:在一个组中分组

时间:2014-03-04 05:11:25

标签: regex go

我正在尝试使用Regexp匹配Nmap命令的输出。可以有两种不同的格式。

第一种格式(当nmap可以找到主机名时)

Nmap scan report for 2u4n32t-n4 (192.168.2.168)

和第二种格式(没有主机名)

Nmap scan report for 192.168.2.1

我想捕获主机名和ipaddress,如果没有主机名,只需将Ip作为主机名,就像第二种格式一样。

到目前为止,我在Golang中尝试使用的是

Nmap scan report for\\s+([^[:space:]]+)(\\s+\\(([^[:space:]]+)\\))?

但是我在golang中得到了什么

第一种格式(它给了我(192.168.2.168)我不想要的)如下:

[Nmap scan report for 2u4n32t-n4 (192.168.2.168), 2u4n32t-n4 , (192.168.2.168) , 192.168.2.168]

和第二种格式(它给了我我不想要的)如下:

[Nmap scan report for 192.168.2.1, 192.168.2.1,  ]

正确做什么?

1 个答案:

答案 0 :(得分:0)

怎么样:

Nmap scan report for\s+(?P<hostname>.*?)[\s,]

action

中查看