英文:
get rid of the outer tag using golang and regexp?
问题
我正在使用goalng进行一些模板操作,并希望去掉外部的标签。如下所示:
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`
提前感谢!
英文:
I am using the goalng to do some template,and want to get rid of the outer tag .
as the following:
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`
and i want to get the string. it ommit the tag "<dxh ....>"
,"</dxh>"
. and only remain the content between them, "{{4567}}"
and "{{12345}}"
str=`aaa<div>{{4567}}aaa</div>bbb{{12345}}amrambler`
thanks in advance !
答案1
得分: 1
你可以使用以下代码来获取你想要的输出。
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`(?s)<dxh[^>]*>.*?({{[^}]*}}).*?</dxh>`)
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`
res := re.ReplaceAllString(input, "$1")
fmt.Println(res) // aaa<div>{{4567}}aaa</div>bbb{{12345}}amrambler
}
[kbd]**GoPlay**(http://play.golang.org/p/PdOEt0_ayf)[/kbd]
请注意,这只是代码的翻译部分,不包括代码的执行结果。
英文:
You can use the following to get your desired output.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("(?s)<dxh[^>]*>.*?({{[^}]*}}).*?</dxh>")
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`
res := re.ReplaceAllString(input, "$1")
fmt.Println(res) // aaa<div>{{4567}}aaa</div>bbb{{12345}}amrambler
}
<kbd>GoPlay</kbd>
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论