gpt4 book ai didi

regex - Go 正则表达式中的否定前瞻

转载 作者:行者123 更新时间:2023-12-03 10:06:39 26 4
gpt4 key购买 nike

我正在尝试在 Go 中使用否定前瞻。

以下正则表达式:BBB(((?!BBB).)*)EEE

http://rubular.com/r/Zw1vopp1MF

但是,在 Go 中我得到:

error parsing regexp: invalid or unsupported Perl syntax: `(?!`

还有其他选择吗?

最佳答案

由于技术原因,不支持负先行,特别是因为它与库的 O(n) 时间保证冲突。查看golang-nuts group discussion关于这一点,以及 Regular Expression Matching in the Wild 中的注意事项部分.

您可以表达您所描述的正则表达式而无需否定前瞻:

BBB([^B]|B[^B]|BB[^B])*EEE

这是一个 example演示:

package main

import (
"fmt"
"regexp"
)

func main() {
re := regexp.MustCompile(`BBB([^B]|B[^B]|BB[^B])*EEE`)
fmt.Printf("%#v\n", re.FindAllString("BBB EEE BBB..BBB...EEE", -1))
}

关于regex - Go 正则表达式中的否定前瞻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54225052/

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