JavaScript 正则表达式取代 YAML frontmatter

joh*_*rgo 1 javascript regex yaml-front-matter

我正在构建一个 nodejs 包,它从文件中读取 YAML 前面的内容。我使用 YAML 包获取 YAML,将其转换为 JSON 并对其进行更改。

现在我希望能够替换整个 frontmatter,但找不到正则表达式来执行此操作。

templateFile = templateFile.replace(SOME-REGEX-EXPRESSION, YAML.stringify(frontmatter)
Run Code Online (Sandbox Code Playgroud)

我可以在这里使用什么正则表达式来完成此任务?

Des*_*666 6

修改问题的新答案

/---\n.*?\n---/s
Run Code Online (Sandbox Code Playgroud)

该正则表达式匹配 frontmatter,包括---开始和结束。与旧的正则表达式相比,您只需要不使用前瞻即可。

旧答案

您可以使用它来匹配 frontmatter 而无需---

/(?<=---\n).*?(?=\n---)/s
Run Code Online (Sandbox Code Playgroud)

分解:

  • (?<=---\n)- 正向后查找以匹配---后跟新行
  • .*?- 懒惰地匹配任何东西
  • (?=\n---)----正向前瞻匹配新行
  • s- 点的标志也匹配新行

演示