我每天处理许多文档,并使用正则表达式和自动热键从给定字符串中打开特定的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
不会是提取的文件名的一部分,但你写的原始文件有效,所以我让这个方面休息。