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



我每天处理许多文档,并使用正则表达式和自动热键从给定字符串中打开特定的pdf页面。例如,我会复制下面的字符串,包括括号,然后按热键

(16G3537-2011纳税申报表第25页)

任何我下面的Ahk代码都会在pdf 16G3537-2011税务中打开第25页

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

Adobelocation是adobe阅读器在我的计算机中的位置

copyz是pdf所在文件夹的位置

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

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

我真的很不知所措,无法使用修改后的字符串使我的代码打开第25页。请帮帮我。

编辑:

此代码的命令行是

运行,pathto\Acrobat.exe/A"page="part2"C:\folder\"part1".pdf"

尝试

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

与原始正则表达式的不同之处在于消除了括号匹配(()),并替换了页面特定前面的分隔符Char(.而不是-)。

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

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

最新更新