gpt4 book ai didi

regex - Perl 重新否定后面的可变长度错误

转载 作者:行者123 更新时间:2023-12-04 18:07:54 26 4
gpt4 key购买 nike

当前面没有单引号或美元符号时,此正则表达式可以很好地匹配模式 'ab_':

/(?<!('|\$))ab_/

但是,例如,如果我尝试在单引号之前添加一个括号
/(?<!(\['|\$))ab_/

我收到这个错误
Variable length lookbehind not implemented in regex;

这个错误是什么意思,有没有办法让第二个例子工作?
由于我不是专家,因此我可能忽略了一些基本的东西,所以请指出我遗漏的任何内容。

最佳答案

该错误意味着在 Perl 中,后视断言必须具有固定长度的模式。 ('|\$)很好,因为模式只匹配长度为 1 的子字符串,但 (\['|\$)可以匹配长度为 1 的子字符串( $ )或长度为 2 的子字符串( [' )。

在您的情况下,您可以通过使用两个单独的后视来解决这个问题,每个后视都有一个固定长度的模式,一个用于您要排除的每种情况:

/(?<!\[')(?<!\$)ab_/

关于regex - Perl 重新否定后面的可变长度错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22278906/

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