0

所以我目前有以下代码:

f2::
SendInput, ^c
RegExMatch(clipboard, "[\w-_.]+@(?:\w+(?::\d+)?\.){1,3}(?:\w+\.?){1,2}", email)
WinActivate, emailaddresses - Notepad
SendInput, %email%`r
return

它似乎正在工作,但我正在尝试获取它,以便如果我突出显示 5 个电子邮件地址,它会将它们分别发送到电子邮件地址中的不同行 - 记事本窗口。

4

1 回答 1

0

如果您知道分隔符,则可以使用 StringSplit 并在其上运行您的函数。

来自http://www.autohotkey.com/docs/commands/StringSplit.htm

f2::
SendInput, ^c
;put your delimiter here, assuming space/tab for now
StringSplit, txtArray, clipboard, %A_Tab%%A_Space%
Loop, %txtArray0%
{
  copyemail(txtArray%a_index%)
}
return

copyemail(sTxt) {
  FoundPos := RegExMatch(sTxt, "[\w-_.]+@(?:\w+(?::\d+)?\.){1,3}(?:\w+\.?){1,2}", email)
  if (FoundPos > 0) {
    WinActivate, emailaddresses - Notepad
    SendInput, %email%`r
  }
}

见上面的样品,未经测试!

于 2013-01-14T04:41:43.790 回答