gpt4 book ai didi

regex - 负面回顾替代方案

转载 作者:IT王子 更新时间:2023-10-29 00:55:31 26 4
gpt4 key购买 nike

我有一个字符串

百年纪念

我想匹配 ten 只有当它前面没有 cen 时。

到目前为止我有这个正则表达式:

(([^c][^e][^n])|^)十

在以下情况下返回 true tenaryblahtenary 和 false for ctenarycetenary , 百年

package main

import (
"fmt"
"regexp"
)

func main() {
txt := "ctenary"
rx := `(([^c][^e][^n])|^)ten`
re := regexp.MustCompile(rx)
m := re.MatchString(txt)
fmt.Println(m)
}

最佳答案

由于缺少对先行或后行的支持,我们需要坚持使用否定字符类 - 但 [^c][^e][^n] 没有完全涵盖它,因为它不允许 cxxten 并且也不会覆盖 ten 之前没有 3 个字符的字符串。

我想出了 (?:^|[^n]|(?:[^e]|^)n|(?:[^c]|^)en)ten,将 10 存储到第一个捕获的组中。它正在为每种可能的方式创建替代方案,以不完全匹配 cen

替代方案可能是匹配 (.{0,3})(ten) 并在第一组存储 cen 时以编程方式丢弃匹配。

关于regex - 负面回顾替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38014387/

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