gpt4 book ai didi

javascript - 为什么积极的前瞻性不能作为第一个捕获组?

转载 作者:行者123 更新时间:2023-12-05 00:31:44 28 4
gpt4 key购买 nike

我正在使用以下正则表达式;

((?:_missing_:|_exists_:)[a-z0-9]+)|(([a-z0-9]+)(?=:))

匹配一个lucene查询字符串;
_missing_:title age:(>=10 AND < 20) AND age:123 AND _exists_:title123

不尊重第一个非捕获组并返回 _missing_:title而不是 title .使用积极的前瞻会使整个正则表达式无法匹配任何内容。

它应该返回以下数组;
['title', 'age', 'age', 'title123']

最佳答案

如下更改您的正则表达式,然后从组索引 1 和 2 中获取您想要的字符串。

(?:_missing_:|_exists_:)([a-z1-9]+)|([a-z1-9]+)(?=:)

您不需要包含非捕获组 (?:_missing_:|_exists_:)在捕获组内。这就是返回 missing:title 的原因而不是 title .以及 [a-z1-9]+ 的捕获组就足够了。

DEMO

关于javascript - 为什么积极的前瞻性不能作为第一个捕获组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27188999/

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