gpt4 book ai didi

regex - Golang 多行正则表达式不起作用

转载 作者:IT王子 更新时间:2023-10-29 01:17:11 28 4
gpt4 key购买 nike

为什么下面的多行正则表达式不起作用,我希望匹配标签内的子字符串。其他简单的多行匹配工作正常。

func main() {
r := regexp.MustCompile(`(?m)<think>(.*)</think>`)
const s = `That is
<think>
FOOBAR
</think>`
fmt.Printf("%#v\n", r.FindStringSubmatch(s))
}

https://play.golang.org/p/8C6u_0ca8w

最佳答案

默认情况下,“.”不匹配换行符。如果你给出“s”标志,它确实如此。我认为您不需要“m”。

注意如果有多个<think>...</think>在您的字符串中,正则表达式将匹配第一个 <think> 之间的所有内容最后一个 </think> .使用 .*?将导致它只匹配第一个的内容。

关于regex - Golang 多行正则表达式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37106834/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com