gpt4 book ai didi

正则表达式不适用于升序。

转载 作者:行者123 更新时间:2023-12-01 08:27:03 25 4
gpt4 key购买 nike

这可能是个简单的问题,但我想不通。当我测试以下字符串 TEST_NO 时\b(?>TEST|TEST_NO)\b 它不匹配。当我针对 \b(?>TEST_NO|TEST)\b 测试它时,它按预期工作。谁能解释一下为什么?

最佳答案

也许您打算使用非捕获组:

\b(?:TEST|TEST_NO)\b

您正在使用 atomic group 。和 atomic groups防止回溯。

An atomic group is a group that, when the regex engine exits from it, automatically throws away all backtracking positions remembered by any tokens inside the group.

事情是这样的:

The subpattern               Text

\b(?>TEST|TEST_NO)\b TEST_NO
^^^^^^^^^ ^^^^

然后它尝试匹配:

The subpattern               Text

\b(?>TEST|TEST_NO)\b TEST_NO
^^ ^

它失败了,所以它试图回溯,但原子团阻止了它。


您还可以在 regex101.com 中看到逐步调试(点击正则表达式调试器)。

regex101 debug

关于正则表达式不适用于升序。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33905017/

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