使用 markdown 快速附件

使用 markdown 快速附件

我有一份这样的文件:

A lot of text. 
insert:good graph:x
More text. insert: :y

Even more text. 

insert:another figure:z

我想将全部更改insert:description:x为,![description][A_Standardized_filepath/x.pdf]因为该命令![][]会将文件附加到我的 markdown 文档中。请注意,x 是我正在更改的变量,并且每个变量的描述都是唯一的。但是,文件路径始终相同。(请注意,y没有描述,我通过添加空格解决了这个问题。)

这将使我能够加快创建文档的进程。


我在 Windows 7 上;我更喜欢使用 Notepad++ 来写作。

答案1

我不知道 notepad++,但如果它有使用正则表达式的查找和替换功能,那么你应该能够适应这一点。在 vim 中,我会使用:

:%s/insert:\([^:]*\):\([^ :]*\)/![\1][A_Standardized_filepath\/\2.pdf]/g

表示%“对每一行起作用”;s启动substitute命令(s/change this/to this/),g末尾的 表示“对一行中的每个匹配项起作用”(而不是仅对第一个匹配项起作用,这是 vim 的默认行为)。

其核心内容在第一部分。\(\)表示捕获组;由于 notepad++ 相对较新,我预计您不需要在那里使用反斜杠。第一组之间的所有内容在命令的右侧\(\)称为(同样,在 notepad++ 中可能有所不同:例如,perl 改用),第二组之间的所有内容在右侧称为,等等。\1$1\(\)\2

[^:]表示“除 之外的任何字符:”,而[^ :]表示“除空格或 之外的任何字符:”。这假设您构造的文件名部分永远不会有空格。

如果有人了解 notepad++,他们应该可以随意地将这个正则表达式转化为答案。

相关内容