Autohotkey 以空格作为分隔符分析数值,同时忽略数字分组(即1 020 vs 1020)

Autohotkey 以空格作为分隔符分析数值,同时忽略数字分组(即1 020 vs 1020),autohotkey,Autohotkey,这里需要一些想法。 我有一个看起来像“542.12 18.02 1 020.00 2.34”的字符串,我想将其解析为单独的变量(以_空格作为分隔符)。问题是1020.00的值写在表格1020.00上,所以我得到了变量1和020.00。 我不能想出任何关于RegExReplace的东西,因为从文档中可以理解,我必须替换整个Regex。否则我可以使用“\d+(replaceOnlyThiss space)”,因为“真实”值中总是有一个点。我希望这可以在RegExReplace中以某种方式完成,但我找

这里需要一些想法。 我有一个看起来像“542.12 18.02 1 020.00 2.34”的字符串,我想将其解析为单独的变量(以_空格作为分隔符)。问题是1020.00的值写在表格1020.00上,所以我得到了变量1和020.00。 我不能想出任何关于RegExReplace的东西,因为从文档中可以理解,我必须替换整个Regex。否则我可以使用“\d+(replaceOnlyThiss space)”,因为“真实”值中总是有一个点。我希望这可以在RegExReplace中以某种方式完成,但我找不到任何东西表明它可以。我现在真的让它工作了,但很混乱:

nrofvaluesover1000 := 0
Loop , Parse , var, %A_Space%
{
if A_LoopField is Integer
{
    nrofvaluesover1000++
    thousands := A_LoopField
    continue
}
nr := A_Index - nrofvaluesover1000
If (nr = nrofthewantedvalue)
{
    if thousands is not space
    {
        MyValue := A_LoopField + 1000 * thousands
        thousands := ""
    }
    else
        MyValue := A_LoopField
    MsgBox '%MyValue%' 
    break
}
else
    thousands := ""
}

肯定有更简洁的方法做同样的事情吗?

这将解析包含1)零个或多个嵌入空格和2)一个小数点的数字:

haystack := "1.1 200.2 3 000.3 400 000.4 5 000 000.5"
pos := 1

while (pos := RegExMatch(haystack, "[\d ]+\.\d+", match, pos)) {
  pos += strlen(match)
  MsgBox % strreplace(match, " ")
}