gpt4 book ai didi

regex - 负面回顾失败

转载 作者:IT王子 更新时间:2023-10-29 02:05:29 25 4
gpt4 key购买 nike

我的 Golang 代码中有一个小的 MySQL 表检查器脚本。我最不想做的就是存储任何可能的 enum应用程序启动时的值,这样我就可以从缓冲区中读取它,而不必为 API 调用不断地描述表。

现在 enum'value1','value2','value\'s3 这样的东西可能会发生,其中像 '(.*?)' 这样的简单正则表达式由于 value\'s3 中的转义引号而不起作用.所以我写了一个否定的回溯,让它只有在它是一个非转义引号时才匹配。并非完全完美,但至少进行了一些额外的检查,并且我自己管理数据库结构,因此我可以在上面做一个小记录。

切中要点;负面回顾失败 '(.*?)(?<!\\)' :

panic: regexp: Compile(`'(.*?)(?<!\\)'`): error parsing regexp: invalid or unsupported Perl syntax: `(?<`

代码:

var enumMatchValues = regexp.MustCompile(`'(.*?)(?<!\\)'`)
values := enumMatchValues.FindAllStringSubmatch(theRawEnumValuesString, -1)

先行/后行是否正式不是 RegEx 功能核心的一部分,或者这只是 Golang 尚未实现的东西?

Go 是否有其他解决方法或扩展的 RegEx 包来解决这个问题?

最佳答案

不支持 Lookarounds,您可以使用可能的解决方法:

re := regexp.MustCompile(`'(.*?[^\\]|)'`)
values := re.FindAllStringSubmatch(theRawEnumValuesString, -1)

关于regex - 负面回顾失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28785505/

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