【发布时间】:2014-04-15 06:41:28
【问题描述】:
由于 Chrome 默认的 pdf 查看器不显示 pdf 文件中的相对超链接,我尝试找到一种半自动的方法来将它们替换为服务器上特定路径的链接。
在 notepad++ 中打开 pdf 后,我发现 pdf 文件的语法非常有趣。无论如何,在记事本中使用正则表达式替换路径本身非常容易。
尝试摆脱这种结构时出现问题:
706 0 obj
<</F 707 0 R/S/Launch>>
endobj
因为记事本替换不适用于多行表达式。
我可以单独删除它们:
([0-9]+\s[0-9]\s)obj$
(\W+)F(\s[0-9]+\s[0-9]\s)R(\W)S(\W)Launch(\W+)$
endobj$
但后来我弄乱了我不想更改的其他对象,所以我需要一种方法将其作为一个整体删除。
任何想法,或者也许有一种简单的方法可以将 pdf 中的文件对象转换为源文件或不同的文本编辑器,该编辑器允许使用高级修饰符搜索多行表达式。
【问题讨论】:
-
_this structure_是否扩展到多行?如果是这样,换行符在哪里? -
在你的正则表达式中匹配换行符(可能的换行符)的东西是
\s和\W,不确定 $ 试图匹配什么(因为它的 NP++) -
感谢重播。 TheStucture 以 CR 作为换行符延伸超过 3 行(如问题所示)。不幸的是 \W 作为换行符对我不起作用?这是为什么?尝试了 Jerry 建议的正则表达式,记事本找不到任何东西。
-
我假设非单词字符类由
\W表示。不确定\W是什么意思,因为 CR 是该类匹配的众多字符之一。并且不确定 NP++ 是否向正则表达式提供多行。杰瑞对你有用吗?
标签: regex pdf replace hyperlink notepad++