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.*?$", "+")
我需要 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.*?$", "+")