我编写了一个正则表达式,它在 OR 条件下搜索搜索词,这样就提供了字符串中的三个单词,无论它们的顺序如何。现在我只想放置一个 AND 条件,因为我想同时以不同的顺序在字符串中获取所有三个单词。
这是我的preg_match()
正则表达式。
$myPregMatch = (preg_match("/\b^(Word1|Word2|Word3)\b/", "Word4 Word2 Word1 Word3 Word5 Word7"));
if ($myPregMatch){
echo "FOUND !!!";
}
我想在字符串中查找"Word4 Word2 Word1 Word3 Word5 Word7"
所有单词都以不同的顺序排列在其中。如果样本字符串是"Word5 Word7 Word3 Word2"
那么它不应该返回。
您需要锚定前瞻:
^(?=.*\bWord1\b)(?=.*\bWord2\b)(?=.*\bWord3\b)
See demo
如果输入字符串中有换行符,则需要使用/s
修饰符。
这是一个IDEONE演示:
$re = '/^(?=.*\bWord1\b)(?=.*\bWord2\b)(?=.*\bWord3\b)/';
$str = "Word4 Word2 Word1 Word3 Word5 Word7";
$myPregMatch = (preg_match($re, $str));
if ($myPregMatch){
echo "FOUND !!!";
}
Result: FOUND !!!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)