gpt4 book ai didi

c++ - 在 QRegularExpression 中,绕过 "lookbehind assertion is not fixed length"限制的最佳方法是什么?

转载 作者:行者123 更新时间:2023-11-28 04:43:17 24 4
gpt4 key购买 nike

采用以下正则表达式:

(?<=(&lt;|<)ref)

这将使 QRegularExpression::isValid(); 失败并且 QRegularExpression::errorString(); 将输出

lookbehind assertion is not fixed length

现在显然不是所有的正则表达式引擎都有这个限制,但显然这个有。

也许有一个面向正则表达式的解决方法?如果不是,使用 Qt 框架实现此功能的最佳和最简洁的策略是什么?

最佳答案

由于您使用的是 PCRE 引擎,lookbehind 中的模式长度不是固定的。备选方案可以有不同的长度,但不能有嵌套的备选方案组,即使它们的长度也是已知的(固定的)。

因此您的 (?<=(&lt;|<)ref)可以写成 (?<=&lt;ref|<ref) .但是,这里更灵活的解决方案是使用 \K : (?:&lt;|<)ref\K .在这里,nin-capturing 组将匹配 &lt;<然后在匹配ref之后所有匹配的文本都将被清除。

关于c++ - 在 QRegularExpression 中,绕过 "lookbehind assertion is not fixed length"限制的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49780674/

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