我每天处理许多文档,并使用正则表达式和Autohotkey从给定字符串打开特定页面的pdf。例如,我将复制下面的字符串,包括括号并按热键
(16G3537-2011纳税申报表 - 第25页)
我的以下Ahk代码将打开pdf 16G3537-2011税的第25页
RegExMatch(clipboard,"i)\((.*)\s*-page\s*(\d+)\)",part)
Run, %Adobelocation% /A page=%part2% %copyz%/%part1%.pdf"
Adobelocation是我的计算机中adobe reader的位置
copyz是pdf所在文件夹的位置
我在某种程度上了解AHK,但在常规exp方面有困难。现在我的查询字符串已被修改为
16G3537-2011纳税申报表.pdf_pages 25
我真的不知道如何使用修改后的字符串使我的代码打开第25页。请帮助我。
编辑:
此代码的命令行是
运行,路径\ Acrobat.exe / A" page ="第2部分" C:\文件夹\"第1部分" .pdf"
答案 0 :(得分:0)
尝试
RegExMatch(clipboard,"i)(.*)\s*\.pdf_pages\s*(\d+)",part)
Run, %Adobelocation% /A page=%part2% %copyz%/%part1%.pdf"
与原始正则表达式的区别在于消除了括号匹配(\(
,\)
)以及特定页面前面的分隔符Char的替换(\.
而不是-
)。
注意由于文件名周围的括号已被删除,如果您要从嵌入文本中提取,则需要其他标记来指示相关表达式的开头。您提供的上下文表明在您的案例(仅包含相关数据的剪贴板)中不需要这样做,但在重用正则表达式时请记住这一点。
仍然想知道为什么return
不会成为提取文件名的一部分,但你写了原始作品,所以我让这个方面休息。