Autoit脚本从字符串中提取所有ip地址



我是autoit的新手,我想以数组格式从这个字符串中提取所有ip地址

#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
#include <array.au3>
$str = "ghg shjsja 192.168.1.2 hbkjNKKSJKKN HKJCBKJLKKL 12.15.14.45 
KJBKJABCKBNDKQ djfsjdkfhnwk kjwenfkjdsnf knfflksnf KHBKJABCKJQDH 
1.1.1.1 2.2.2.2"
$copy = StringRegExp($str,"((d{1,3}.){3}d{1,3})",3)
MsgBox(0,"",$copy[0])`

当我跳过一步时,我得到了所有的ip,这意味着当我使用$copy[2]时,我将得到第二个ip。我想在不跳过步骤的情况下提取所有ip。

$str = "ghg shjsja 192.168.1.2 hbkjNKKSJKKN HKJCBKJLKKL 12.15.14.45 " & _
"KJBKJABCKBNDKQ djfsjdkfhnwk kjwenfkjdsnf knfflksnf KHBKJABCKJQDH " & _
"1.1.1.1 2.2.2.2"
$copy = StringRegExp($str, "((?:d{1,3}.){3}d{1,3})", 3)
For $i = 0 To UBound($copy) -1
ConsoleWrite($copy[$i] & @CRLF)
MsgBox(0, "", $copy[$i])
Next

将输出

192.168.1.2
12.15.14.45
1.1.1.1
2.2.2.2

而不是

192.168.1.2
1.
12.15.14.45
14.
1.1.1.1
1.
2.2.2.2
2.

内部捕获组开始时的?:它不是一个群体。外部组捕获内部组和其他角色在外部捕获组内作为单个[步骤|捕获]。

最新更新