Regex Go正则表达式,带正向查找
我正试图在Go中编写一个函数,它将用Regex Go正则表达式,带正向查找,regex,go,Regex,Go,我正试图在Go中编写一个函数,它将用foobaz替换foobar,但前提是bar前面有foo。在我看来,该函数加上正向查找(cf.)将适用于此,因此我尝试了以下方法: package main import ( "fmt" "regexp" ) func main() { re := regexp.MustCompile(`(?<=foo)bar`) new := re.ReplaceAll([]byte("foobar"), []byte("baz"
foobaz
替换foobar
,但前提是bar
前面有foo
。在我看来,该函数加上正向查找(cf.)将适用于此,因此我尝试了以下方法:
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`(?<=foo)bar`)
new := re.ReplaceAll([]byte("foobar"), []byte("baz"))
fmt.Println(string(new))
}
我怎样才能做到这一点
注
我尝试过的一件事是用非捕获组替换正则表达式:
re := regexp.MustCompile(`(?:foo)bar`)
但是,我发现程序随后会根据需要打印
baz
,而不是foobaz
。看起来您的问题只是静态字符串替换。你能简单地完成吗
但如果你真的想回头看:
Go的regexp
包不支持查找,您可以在此处检查支持的功能:
如果您确实需要查找,您应该尝试第三方模块,例如:看起来您的问题只是静态字符串替换。你能简单地完成吗 但如果你真的想回头看: Go的
regexp
包不支持查找,您可以在此处检查支持的功能:
如果您确实需要查找,您应该尝试使用第三方模块,例如:regex在这里有什么用途?“将
foobar
替换为foobaz
,但前提是bar
前面加上foo
”这一要求相当奇怪,因为foobar
只是一个静态字符串,并且始终满足该条件。regex在这里有什么用途?“将foobar
替换为foobaz
,但前提是bar
前面加上foo
”这一要求相当奇怪,因为foobar
只是一个静态字符串,而且该条件始终会得到满足。
re := regexp.MustCompile(`(?:foo)bar`)