gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 13:01:54 31 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/26771592/

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