我需要AHK的RegExReplace的帮助。
我希望我的脚本搜索文本并仅在$符号后保留数字。
现在我有:
F1::
Clipboard =
SendInput, ^c
ClipWait
Variable := Clipboard
NewVar := RegExReplace(Variable,"[^.0-9]+", "{+}")
send % NewVar
return
例如,如果文本为"unit $400 unit 500 $400"
,我得到400+500+400+
我想得到的是"400+400+
“
我还无法弄清楚如何排除没有$的数字,而且我不确定RegEx是在这里使用的最佳方法。
任何帮助都会很棒!
答案 0 :(得分:0)
我不知道如何使用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
答案 1 :(得分:0)
这是最终版本,可以满足我的需求。谢谢大家的指教!!
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