Hugo 中的正则表达式捕获组
Regex Capturing Group in Hugo
最近想换static site generator from Jekyll to Hugo. I really like Hugo,可惜有些功能的使用经常困扰我
考虑下面的代码,
{{ $my_var := `id="demo"` }}
{{ $my_slice := (findRE `id=\"(.*)\"` $my_var 1) }}
{{ index $my_slice 0 }}
结果:
id="demo"
预期结果
demo
在上面的例子中,我想获取组的值。
请注意,真正需要的是获取组的常规表示,而不是巧妙地使用其他函数(例如 replace 将 id="
替换为空白或类似的东西那)
正则表达式测试网站:https://regex101.com/
请帮助我,我真的花了很多时间寻找,但仍然一无所获。我在 Hugo-discourse 找到了同样问题的人,但是已经一年了,仍然没有答案。
最简单的方法是使用 replaceRE
,其中 </code> 是您的组号。</p>
<pre><code>{{ $my_var := `id="demo"` }}
{{ $result := replaceRE `id=\"(.*)\"` "" $my_var }}
{{ $result }} → "demo"
感谢@modInfo 的启发,我决定展开replaceRE
的答案
按订单
{{ $my_var := `id="demo"` }}
{{ $result := replaceRE `id=\"(.*)\"` "" $my_var }}
{{ $result }} → "demo"
名称组
{{ $my_var := `id="demo2"` }}
{{ $result := replaceRE `id=\"(?P<my_id>.*)\"` "$my_id" $my_var }}
{{ $result }} → "demo2"
更多示例
{{ $my_var := `<h2 id="#demo+1-3%./2\"><a href="https://www.google.com/"></a></h2>` }}
{{ $id := replaceRE `.*id=\"(?P<my_id>([:#a-z0-9+\-%./\])*)\">(<a href=\"(?P<my_href>[:#a-z0-9+\-%./\]*)\">.*)?` "$my_id" $my_var }}
{{ $id }} → #demo+1-3%./2\
{{ $href := replaceRE `.*id=\"(?P<my_id>([:#a-z0-9+\-%./\])*)\">(<a href=\"(?P<my_href>[:#a-z0-9+\-%./\]*)\">.*)?` "$my_href" $my_var }}
{{ $href }} → https://www.google.com/
最近想换static site generator from Jekyll to Hugo. I really like Hugo,可惜有些功能的使用经常困扰我
考虑下面的代码,
{{ $my_var := `id="demo"` }}
{{ $my_slice := (findRE `id=\"(.*)\"` $my_var 1) }}
{{ index $my_slice 0 }}
结果:
id="demo"
预期结果
demo
在上面的例子中,我想获取组的值。
请注意,真正需要的是获取组的常规表示,而不是巧妙地使用其他函数(例如 replace 将 id="
替换为空白或类似的东西那)
正则表达式测试网站:https://regex101.com/
请帮助我,我真的花了很多时间寻找,但仍然一无所获。我在 Hugo-discourse 找到了同样问题的人,但是已经一年了,仍然没有答案。
最简单的方法是使用 replaceRE
,其中 </code> 是您的组号。</p>
<pre><code>{{ $my_var := `id="demo"` }}
{{ $result := replaceRE `id=\"(.*)\"` "" $my_var }}
{{ $result }} → "demo"
感谢@modInfo 的启发,我决定展开replaceRE
的答案按订单
{{ $my_var := `id="demo"` }}
{{ $result := replaceRE `id=\"(.*)\"` "" $my_var }}
{{ $result }} → "demo"
名称组
{{ $my_var := `id="demo2"` }}
{{ $result := replaceRE `id=\"(?P<my_id>.*)\"` "$my_id" $my_var }}
{{ $result }} → "demo2"
更多示例
{{ $my_var := `<h2 id="#demo+1-3%./2\"><a href="https://www.google.com/"></a></h2>` }}
{{ $id := replaceRE `.*id=\"(?P<my_id>([:#a-z0-9+\-%./\])*)\">(<a href=\"(?P<my_href>[:#a-z0-9+\-%./\]*)\">.*)?` "$my_id" $my_var }}
{{ $id }} → #demo+1-3%./2\
{{ $href := replaceRE `.*id=\"(?P<my_id>([:#a-z0-9+\-%./\])*)\">(<a href=\"(?P<my_href>[:#a-z0-9+\-%./\]*)\">.*)?` "$my_href" $my_var }}
{{ $href }} → https://www.google.com/