正则表达式:如何以任何顺序匹配组中的每个单词?

时间:2019-11-10 03:33:00

标签: regex match word

因此,假设我要搜索单词hamburgersteak。仅当找到两个单词(以任一顺序)时,正则表达式才应匹配/返回true。即

The将返回true

I like hamburgers and steak
I like steak and hamburgers

由于只有一个单词被匹配,它们将返回false

I like hamburgers
I like stake

希望有人可以帮助我解决这个问题。理想情况下,有一个简单的解决方案,因为这些查询将由PHP生成,并且用户可以输入无限的单词进行搜索(与本示例相反,该示例仅使用2个),因此可能难以实现复杂的解决方案/调试

无论如何,在此先感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

尝试以下模式:

^.*\b(?:hamburgers\b.*\bsteak|steak\b.*\bhamburgers)\b.*$

这将以任意顺序匹配关键字hamburgerssteak

Demo

相关问题