正则表达式恰好匹配文本中的 n 个词

Regex match exactly n words in text

我目前正在使用正则表达式进行搜索。

我想在文本中查找单词,无论它们在文本中的位置如何(文本可以包含换行符)。仅当搜索中的 所有 个单词包含在文本中时,正则表达式才应匹配。

考虑以下文本:

This is a test #test which also uses @mentionings

如果我搜索“#test is @mentionings”,应该可以找到此文本

我有以下使用前瞻的正则表达式:

/(?=.*#test).*\n*(?=which.*).*\n*(?=@mentionings.*).*/i

不幸的是,这没有按预期工作。我错过了什么?

您可以使用这种也将跨换行搜索的前瞻:

^(?=[\s\S]*#test)(?=[\s\S]*which)(?=[\s\S]*@mentionings)

RegEx Demo

[\s\S]是匹配任意字符包括换行符。