猿问

使用 golang 和 regexp 去掉外部标签?

我正在使用目标来做一些模板,并想摆脱外部标签。如下:


  input := `aaa<div><dxh r="4" spans="1:15"><c r="A4" s="7"><v>{{4567}}


</v></c><c r="B4" t="s" s="7"><v>11</v></c><c r="C4" t="s" s="7"><v>12</v>


</c><c r="M4" t="s" s="8"><v>20</v></c></dxh>aaa</div>bbb<dxh>{{12345}}


</dxh>amrambler`

我想得到字符串。它省略了标签"<dxh ....>", "</dxh>"。并且只保留它们之间的内容,"{{4567}}"并且"{{12345}}"


str=`aaa<div>{{4567}}aaa</div>bbb{{12345}}amrambler`

提前致谢 !


达令说
浏览 142回答 1
1回答

慕斯709654

您可以使用以下内容来获得所需的输出。package mainimport (&nbsp; &nbsp;"fmt"&nbsp; &nbsp;"regexp")func main() {&nbsp; &nbsp; re := regexp.MustCompile("(?s)<dxh[^>]*>.*?({{[^}]*}}).*?</dxh>")&nbsp; &nbsp; input := `aaa<div><dxh r="4" spans="1:15"><c r="A4" s="7"><v>{{4567}}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </v></c><c r="B4" t="s" s="7"><v>11</v></c><c r="C4" t="s" s="7"><v>12</v>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </c><c r="M4" t="s" s="8"><v>20</v></c></dxh>aaa</div>bbb<dxh>{{12345}}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dxh>amrambler`&nbsp; &nbsp; res := re.ReplaceAllString(input, "$1")&nbsp; &nbsp; fmt.Println(res) // aaa<div>{{4567}}aaa</div>bbb{{12345}}amrambler&nbsp;&nbsp;}
随时随地看视频慕课网APP

相关分类

Go
我要回答