【发布时间】:2021-05-04 19:34:56
【问题描述】:
我正在尝试将我的个人 wiki 从 Foswiki 转换为 Markdown 文件,然后再转换为 JAMstack 部署。 Foswiki 使用平面文件并以以下格式存储元数据:
%META:TOPICINFO{author="TeotiNathaniel" comment="reprev" date="1571215308" format="1.1" reprev="13" version="14"}%
我想使用 git repo 进行版本控制,并且会担心稍后将其链接到文章元数据。此时我只想将这些块转换为如下所示的内容:
---
author: Teoti Nathaniel
revdate: 1539108277
---
经过一些调整,我构建了以下正则表达式:
author\=\['"\]\(\\w\+\)\['"\]\(\?\:\.\*\)date\=\['"\]\(\\w\+\)\['"\]
根据regex101 这可行,我的两个捕获组包含所需的结果。尝试实际运行它:
perl -0777 -pe 's/author\=\['"\]\(\\w\+\)\['"\]\(\?\:\.\*\)date\=\['"\]\(\\w\+\)\['"\]/author: $1\nrevdate: $2/gms' somefile.txt
只有这个:
>
我之前的尝试(如果细节没有按特定顺序会中断)看起来像这样并正确执行:
perl -0777 -pe 's/%META:TOPICINFO\{author="(.*)"\ date="(.*)"\ format="(.*)"\ (.*)\}\%/author:$1 \nrevdate:$2/gms' somefile.txt
我认为这是一个转义字符问题,但无法弄清楚。我什至去找this tool 以确保它们是正确的。
强行让我理解这里的方式既低效又令人沮丧,所以我向社区寻求帮助。
【问题讨论】:
-
提示:如果不使用
^或$,/m将毫无用处
标签: regex perl markdown foswiki