Быстрые вложения с уценкой
У меня есть такой документ:
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 ++ является относительно новым, я думаю, вам не понадобятся обратные слэши. Все между первым набором \(\) упоминается как \1 в правой части команды (опять же, это может отличаться в notepad++: Perl использует $1 вместо этого, например), все между вторым набором \(\) упоминается как \2 на правой стороне и т. д.
[^:] означает "любой символ, кроме :', в то время как [^ :] означает "любой символ, кроме пробела или :". Это предполагает, что у вас никогда не будет пробелов в части имени файла вашей конструкции.
Если кто-то со знанием Notepad ++ придет, он может свободно использовать это регулярное выражение в ответ.