Regex和Autohotkey - 从查询字符串中提取pdf名称和页码

时间:2014-04-08 07:17:28

标签: regex autohotkey

我每天处理许多文档,并使用正则表达式和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"

Adob​​elocation是我的计算机中adobe reader的位置

copyz是pdf所在文件夹的位置

我在某种程度上了解AHK,但在常规exp方面有困难。现在我的查询字符串已被修改为

16G3537-2011纳税申报表.pdf_pages 25

我真的不知道如何使用修改后的字符串使我的代码打开第25页。请帮助我。

编辑:

此代码的命令行是

运行,路径\ Acrobat.exe / A" page ="第2部分" C:\文件夹\"第1部分" .pdf"

1 个答案:

答案 0 :(得分:0)

尝试

RegExMatch(clipboard,"i)(.*)\s*\.pdf_pages\s*(\d+)",part)
Run, %Adobelocation% /A page=%part2% %copyz%/%part1%.pdf"

与原始正则表达式的区别在于消除了括号匹配(\(\))以及特定页面前面的分隔符Char的替换(\.而不是-)。

注意由于文件名周围的括号已被删除,如果您要从嵌入文本中提取,则需要其他标记来指示相关表达式的开头。您提供的上下文表明在您的案例(仅包含相关数据的剪贴板)中不需要这样做,但在重用正则表达式时请记住这一点。

仍然想知道为什么return不会成为提取文件名的一部分,但你写了原始作品,所以我让这个方面休息。