小编sid*_*uko的帖子

为什么正向前瞻不能作为第一个捕获组起作用?

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

((?:_missing_:|_exists_:)[a-z0-9]+)|(([a-z0-9]+)(?=:))
Run Code Online (Sandbox Code Playgroud)

匹配 lucene 查询字符串;

_missing_:title age:(>=10 AND < 20) AND age:123 AND _exists_:title123
Run Code Online (Sandbox Code Playgroud)

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

它应该返回以下数组;

['title', 'age', 'age', 'title123']
Run Code Online (Sandbox Code Playgroud)

javascript regex regex-lookarounds

5
推荐指数
1
解决办法
315
查看次数

标签 统计

javascript ×1

regex ×1

regex-lookarounds ×1