Hugo 中的正则表达式捕获组

Car*_*ard 5 regex hugo hugo-shortcode

最近我想将我的静态站点生成器Jekyll切换到 Hugo。我真的很喜欢Hugo,但不幸的是,一些功能的使用经常让我困扰。


考虑下面的代码,

{{ $my_var := `id="demo"` }}
{{ $my_slice := (findRE `id=\"(.*)\"` $my_var 1) }}
{{ index $my_slice 0 }}
Run Code Online (Sandbox Code Playgroud)

结果:

id="demo"
Run Code Online (Sandbox Code Playgroud)

预期结果

demo
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我想获取该组的值。

请注意,真正需要的是获取组的正则表示,而不是其他函数的巧妙使用(例如替换id="为用空白或类似的东西替换)

正则表达式测试网站: https: //regex101.com/

在此输入图像描述

请帮助我,我真的花了很多时间寻找但仍然一无所获。我在Hugo-discourse中发现有人有同样的问题,但已经一年了,仍然没有答案。

Seb*_*icz 4

最简单的方法是使用replaceRE,其中$1是您的组号。

\n
{{ $my_var := `id="demo"` }}\n{{ $result := replaceRE `id=\\"(.*)\\"` "$1" $my_var }}\n{{ $result }} \xe2\x86\x92 "demo"\n
Run Code Online (Sandbox Code Playgroud)\n