一个 AutoHotKey 脚本,先 Ctrl + C 复制内容到剪贴板,之后按 F7 复制奇数行,F8 复制偶数行。
正则用在这个场景其实还有些麻烦,主要问题是需要处理不同的换行类型(LF, CRLF),以及注意最后一行可能没有换行符。正则参数前加 m)
是开启 multiline
。
参考: Regex to remove EVEN lines - Stack Overflow
F7::
Var := Clipboard
Odd := RegExReplace(Var, "m)^(.*)\r?\n.*(\r?\n|$)", "$1`n")
SendInput, %Odd%
Return
F8::
Var := Clipboard
Even := RegExReplace(Var,"m)^.*\r?\n(.*)(\r?\n|$)", "$1`n")
SendInput, %Even%
Return
效果