如何用AutoHotkey脚本保留指定单词并删除其余内容?
AutoHotkey脚本实现提取指定内容并生成列表
针对你的需求,我们可以用正则表达式精准提取每行末尾的软件名,再转换为你需要的列表格式,以下是简便的实现方案:
核心脚本(剪贴板处理版)
适合从文档复制内容后快速处理:
; 获取剪贴板中的原始内容 vText := Clipboard ; 多行模式下,匹配每行中"Users"后的软件名,替换为列表项格式 vResult := RegExReplace(vText, "^.*Users\s+(\w+)$", "- $1", "m") ; 将处理后的结果放回剪贴板 Clipboard := vResult MsgBox, 处理完成,结果已复制到剪贴板!
关键正则说明
m参数:开启多行模式,让^(行首)和$(行尾)作用于每一行,而非整个文本^.*Users\s+:匹配每行开头到"Users"及后续所有空白字符的部分(\w+):捕获"Users"后的目标软件名(字母、数字、下划线组成的单词)- $1:将捕获到的软件名替换为带短横线的列表项格式
文件读写版(直接处理本地文件)
如果需要直接读取文件并输出结果:
; 读取原始文件内容(替换为你的文件路径) FileRead, vText, C:\input.txt ; 执行正则替换 vResult := RegExReplace(vText, "^.*Users\s+(\w+)$", "- $1", "m") ; 将结果写入新文件(替换为你的输出路径) FileAppend, %vResult%, C:\output.txt MsgBox, 文件处理完成!
你之前找到的代码仅匹配文本中第一个"m"并截断前面内容,和你的需求不匹配,上面的脚本可以精准提取目标内容并生成期望的列表格式。
内容的提问来源于stack exchange,提问作者burkii52
相关产品推荐
相关产品推荐

