use*_*849 8 regex fuzzy-search
如何通过正则表达式进行“模糊搜索”?
例如,文本“hplaptop”可能是以下任意一项的模糊匹配:
xxx hp laptop
hp xxx laptop
laptop xxxxx hp
Run Code Online (Sandbox Code Playgroud)
对每个单词使用前瞻:
(?=.*\bhp\b)(?=.*\blaptop\b).*
Run Code Online (Sandbox Code Playgroud)
\b表示“单词边界”,因此"bhp"和"laptops"不会匹配。
请参阅现场演示。
前瞻的形式为(?=...),断言(但不消耗)输入与正则表达式(...本例中的点)匹配。由于它不消耗输入,因此在计算指针时指针不会前进,因此您可以在同一点进行多个前瞻。
阅读本文以获得更详细的解释。
使用搜索查询中的单词数量尽可能多的前瞻。