【问题标题】:Regex and Autohotkey - extract pdf name and page number from query stringRegex 和 Autohotkey - 从查询字符串中提取 pdf 名称和页码
【发布时间】:2014-04-08 16:46:21
【问题描述】:

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

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

我下面的任何 Ahk 代码都会打开 pdf 16G3537-2011 tax 的第 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 页。请帮助我。

编辑:

这段代码的命令行是

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

【问题讨论】:

  • 请通过添加您想要实现的预期命令行来扩展您的问题(因此,如果您运行该命令行,PDF 将在第 25 页打开)
  • 嗨,我已经编辑了我的问题。感谢您阅读我的问题。

标签: regex autohotkey


【解决方案1】:

试试

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

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

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

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

【讨论】:

  • 这是有效的。非常感谢!是的,实际代码确实有 Return,但我在问题中错过了它。
猜你喜欢
  • 1970-01-01
  • 2013-06-18
  • 1970-01-01
  • 2020-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多