我在 Go 中有一个简单的正则表达式,在使用 ReplaceAllString 函数时发现了一个奇怪的行为。
package main
import (
"fmt"
"regexp"
)
func main() {
var re = regexp.MustCompile("(.*)(b.*)")
fmt.Println(re.ReplaceAllString("abc", "$1,d"))
fmt.Println(re.ReplaceAllString("abc", "$1d"))
fmt.Println(re.ReplaceAllString("abc", "$1d.f"))
fmt.Println(re.ReplaceAllString("abc", "$1 d"))
}
我期待这样的事情
a,d
ad
ad.f
a d
但实际结果是
a,d
.f
a d
我还在https://regex101.com/r/sROI28/1 测试了正则表达式,发现我的令牌替换语句是问题所在。但我并不完全理解根本问题。
我是否错误地使用了 $ 符号?我将如何调整我的替换字符串以达到预期/期望的输出?