AHK 有关 RegExReplace 的帮助

AHK help regarding RegExReplace

我需要 AHK 中 RegExReplace 方面的帮助。

我希望我的脚本搜索文本并仅保留 $ 符号后的数字。

现在我有:

F1::

 Clipboard = 

 SendInput, ^c

ClipWait

Variable := Clipboard

NewVar :=   RegExReplace(Variable,"[^.0-9]+", "{+}")

send % NewVar

return

例如,如果文本是 "unit 0 unit 500 0",我会得到 400+500+400+

我想得到的是"400+400+

我还没弄清楚如何排除没有 $ 的数字,我不确定 RegEx 是否是这里使用的最佳选择。

任何帮助都会很棒!

我不知道如何使用 RegExReplace 执行此操作,但我可以建议使用 RegExMatch 函数的示例。
不幸的是,AutoHotkey 不支持全局搜索的 /g/ 标志,因此您必须使用循环来搜索您需要的所有值。

#NoEnv
SendMode Input

F1::
    Clipboard = 
    SendInput, ^c
    ClipWait
    i := 1
    while pos := RegExMatch(Clipboard, "$(\d+)", match, i)
    {
        i += pos
        sendinput % match1 "{+}"
    }
    ; sendinput {backspace} ; uncomment this line if you want the last PLUS character to be removed
return

这是最终版本,可以满足我的需要。谢谢大家指教!!!

F1::        
Clipboard = 
 SendInput, ^c
ClipWait
Pos := 1
While Pos {
    Pos:=RegExMatch( Clipboard, "$(\d+(?:\.\d+)?)", M, Pos+StrLen(M1) )
    Match%A_Index% := M1 
    M2  := M2 Match%A_Index% "{+}"
}
Send % "=sum(" M2 
Send    {BS}{BS}){enter}
M2 :=
return
NewVar :=   RegExReplace(Variable, "^.*?\s$")
NewVar :=   RegExReplace(NewVar, "\s.*?$", "+")