按字母顺序排列列表
Alphabetizing a List
我正在寻找一种真正按字母顺序排列列表的方法。假设它是一个基本单词列表,例如:
Black
Green
The Red
Blue
Waxy
Living
Porous
Solid
Liquid
Violet
有没有办法修改此代码以按字母顺序排列列表 "The Red"在 "Solid" 之前?这是我目前拥有的:
SaveVar=%ClipboardAll%
Clipboard=
Send ^c
ClipWait, 0.5
Sort clipboard, CL
;Process exceptions
Sort := RegExOmit (Sort, "The")
Send ^v
Sleep 100
Clipboard=%SaveVar%
SaveVar=
return
编写忽略起始 "The "
子字符串的自定义比较函数。
list = Black`nGreen`nThe Red`nBlue`nWaxy`nLiving`nPorous`nSolid`nLiquid`nViolet`nThe Azure
Sort , list , F Compare
MsgBox, %list%
Compare( a , b )
{
arem := RegExReplace(a, "A)The " , "" )
brem := RegExReplace(b, "A)The " , "" )
return arem > brem ? 1 : arem < brem ? -1 : 0
}
正则表达式用于从字符串中去除子串"The "
,并将结果存储在一个临时字符串中,然后用于比较。
子字符串必须从字符串的开头开始,正则表达式选项 A)
,并且必须在 The
之后立即包含一个 space。
我正在寻找一种真正按字母顺序排列列表的方法。假设它是一个基本单词列表,例如:
Black
Green
The Red
Blue
Waxy
Living
Porous
Solid
Liquid
Violet
有没有办法修改此代码以按字母顺序排列列表 "The Red"在 "Solid" 之前?这是我目前拥有的:
SaveVar=%ClipboardAll%
Clipboard=
Send ^c
ClipWait, 0.5
Sort clipboard, CL
;Process exceptions
Sort := RegExOmit (Sort, "The")
Send ^v
Sleep 100
Clipboard=%SaveVar%
SaveVar=
return
编写忽略起始 "The "
子字符串的自定义比较函数。
list = Black`nGreen`nThe Red`nBlue`nWaxy`nLiving`nPorous`nSolid`nLiquid`nViolet`nThe Azure
Sort , list , F Compare
MsgBox, %list%
Compare( a , b )
{
arem := RegExReplace(a, "A)The " , "" )
brem := RegExReplace(b, "A)The " , "" )
return arem > brem ? 1 : arem < brem ? -1 : 0
}
正则表达式用于从字符串中去除子串"The "
,并将结果存储在一个临时字符串中,然后用于比较。
子字符串必须从字符串的开头开始,正则表达式选项 A)
,并且必须在 The
之后立即包含一个 space。