我正在使用以下正则表达式;
((?:_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)