如果字符串包含所有单词或条件,则正则表达式匹配

时间:2012-06-03 12:37:58

标签: regex

即时通过php和regex制作简单的文字游戏,如果字符串必须要求两个或更多单词,我们如何搜索?

让我们说

"cat"
"dog"
"play" x 2

如果

“猫狗玩游戏”传递

“你好,一只猫狗在玩”没有传递,只有1只“玩”

“cat”没有传递,没有狗和2x游戏

“我想要一只猫和狗一起玩,和爷爷一起玩”传递

我们如何才能与正则表达式匹配?

2 个答案:

答案 0 :(得分:6)

你正在寻找的正则表达式是:

/(?=.*?\bcat\b)(?=.*?\bdog\b)(?=(.*?\bplay\b){2})^.*$/

说明:我认为单词catdogplay(两次)可以按任何顺序出现在文本中,但它们必须全部出现在有资格的句子。正则表达式使用正向前瞻以确保存在上述条件。

Here is the online working demo of above RegEx

答案 1 :(得分:2)

尝试preg_match_all(/cat.+dog(.+play){2}/i,$str,$out);