Hugo 标签之间的正则表达式匹配

Regex match between Hugo tags

我有一个 Hugo 标签,如下所示:

{{< ref posts/filename >}}

filename 是一个变量,是我想要保留的位。

到目前为止我得到了这个:

/\{\{\< (.*?) \>\}\}\)/

这让我有:

ref posts/filename

但我不知道如何删除文件名前的其余部分

您可以匹配 >/ 以外的任何字符,直到 {{< 部分的第一个 /

\{\{<[^>\/]*\/(.*?) >\}\}

参见regex demo

详情:

  • \{\{< - {{< 子串
  • [^>\/]* - >/
  • 以外的零个或多个字符
  • \/ - 一个 / 字符
  • (.*?) - 第 1 组:除换行字符外的任何零个或多个字符,尽可能少
  • >\}\} - >}} 子串。

regex graph:

(?<=\/)[^ ]*(?=[ >])

这给我留下了:

filename

工作示例: https://regex101.com/r/oSBW4q/1