php preg_match,当2个单词可能以随机顺序出现时匹配

时间:2013-02-27 19:18:39

标签: php regex preg-match

是否可以匹配可能以随机顺序出现的两个单词? 例子:

$title = "2 pcs watch for couple";
$title = "couple watch 2 pcs";

目前我正在使用两个正则表达式:

if (preg_match("/2( )?pcs/i", $title) and preg_match("/couple/i", $title))

只是想知道它是否只能用1来完成?

2 个答案:

答案 0 :(得分:2)

如果您只是测试字符串中是否存在两个单词,则可以使用

'/couple.*2 pcs|2 pcs.*couple/' 

答案 1 :(得分:1)

使用strpos()

if(strpos($string, '2 pcs') !== False){
 //its found
}

或首先匹配和结束

if(preg_match("/(^(2 pcs|couples)|(2 pcs|couples)$)/", '2 pcs watch for couples')){
//echo "found";
}

在任何地方匹配:

if(preg_match("/(2 pcs|couples)/", '2 pcs watch for couples')){
//echo "found";
}