regex - golang替换正则表达式的子字符串
问题描述
我试图找到以下正则表达式的所有出现\%\%comp\.[^%]+\%\%
并将它们替换为\%comp\.[^%]+\%
(即从两端减少 1%)。
除了使用 findallindex 匹配并以相反的顺序清理字符串之外,最简单的方法是什么?
解决方案
您可以为此使用Regexp.ReplaceAll方法。示例:
re := regexp.MustCompile(`\%(\%comp\.([^%]+)\%)\%`)
fmt.Printf("%s\n", re.ReplaceAll([]byte("test%%comp.test%%"), []byte("$1")))
>>> OUTPUT: test%comp.test%
请注意,它$n
用于替换字符串以扩展正则表达式中第 n 组的值。
推荐阅读
- powershell - AzureAd 模块的 VS Code PowerShell Intellisense
- go - 如果没有 EOF 错误,go ssh 会话将不会关闭
- javascript - 在数组中查找最大值,其中项目可能是数字或数组
- php - 通过多态多对多关系访问远距离关系
- c++ - 通过队列处理 g_signal_connect() 回调
- amazon-web-services - 调用参数存储时的 lambda 超时
- php - 致命错误:未捕获的错误:找不到类“路线”
- javascript - 如何在类的构造函数中添加事件侦听器,但句柄函数调用类内部的方法(es6)?
- regex - 具有固定组的特定正则表达式
- npm - 可以在 package.lock.json 依赖树的不同部分中存在同一个包的多个版本吗?