在 Autohotkey Format 中,ListBox 的输出?

问题描述

在 Autohotkey 中,我有以下代码

^r::
Gui,Add,ListBox,Multi vMyListBox r10,Strawberries|Pears|Oranges|`r|Beans|Peas|Tomatoes|Turnips|
Gui,Button,Default,OK
Gui,Show
return

ButtonOK:
    Gui,Submit
    MsgBox % MyListBox
    send,% MyListBox
return

输出是,例如:

Strawberries|Beans|Turnips

但我希望它是:

Strawberries,Beans,Turnips,

我应该如何进行?

提前致谢

解决方法

听起来像是RegEx的工作。

使用 RegExReplace() 和 MyListBox 变量作为大海捞针和“\|”作为针。有关此特定 RegEx 针的说明,请参阅 this interactive

将字符串的替换版本保存在名为 NewStr 的变量中为我们提供了以下代码行:

NewStr := RegExReplace(MyListBox,"\|",Replacement := ",")

当前代码:

^r::
Gui,Add,ListBox,Multi vMyListBox r10,Strawberries|Pears|Oranges|`r|Beans|Peas|Tomatoes|Turnips|
Gui,Button,Default,OK
Gui,Show
return

ButtonOK:
    Gui,Submit
    MsgBox % MyListBox
    NewStr := RegExReplace(MyListBox,")
    MsgBox % NewStr
    send,% NewStr
return

然而,这个版本没有添加尾随的“,”。为了添加这个,让我们在刚刚用 NewStr.=","

创建的 NewStr 变量中添加一个“,”

最终代码:

^r::
Gui,")
    NewStr.=","
    MsgBox % NewStr
    send,% NewStr
return