从网页或聊天软件复制的文本经常带多余空行、全角空格和首尾空白,粘贴前总要手动整理一遍。这里提供一个清洗思路:把剪贴板文本读出来,做完规则替换后再写回,这样复制完直接粘贴,得到的就是洗过的内容。

实现思路

win.clip.read() 读取文本;string.trim() 去掉首尾空白;while 循环配合 string.find 把三个以上连续空行压缩成一个;全角空格替换成半角;最后 win.clip.write() 写回。

完整代码

import console;
import win.clip;
import string;

console.open();

main = function() {
    var text = win.clip.read();
    if (text == null || #text == 0) {
        console.log("剪贴板里没有文本");
        return;
    }

    text = string.trim(text);                     // 去首尾空白

    while (string.find(text, "


") != null) { // 压缩连续空行
        text = string.replace(text, "


", "

");
    }

    text = string.replace(text, " ", " ");      // 全角空格转半角

    win.clip.write(text);                         // 写回剪贴板
    console.log("清洗完成,处理后长度:" + #text);
};

main();
console.pause(true);

运行要点

  • win.clip.write 默认先清空剪贴板再写入,无需手动 clear;
  • aardio 的 while 条件里 string.find 查不到返回 null,可直接作为循环结束条件;
  • 把 main 外再套一层 while(true) 加 time.sleep(500),即可做成后台自动净化剪贴板的常驻工具。

小结

剪贴板读改写三步结合,可以衍生出关键字替换、内容打码、代码格式化等更多自动化玩法,是桌面脚本的高频场景。