Preg_match_all与多个单词完全匹配

时间:2018-12-16 18:26:04

标签: php regex preg-match-all word-boundary

我有一长串关键字,下面用变量$skills表示,其中包含Shop Supervisor但不包含Machine Shop Supervisor

$text = "Machine Shop Supervisor";
preg_match_all("~\b$skills\b~i", $text, $matchWords);
foreach ($matchWords[0] as $matchWord) {
     echo "<b>MatchWord:</b> " . $matchWord.  "<br>";
 }
  

结果:商店主管

如何获得$text的完全匹配?因此在这种情况下不应有任何结果,因为Machine Shop Supervisor不在关键字列表中。

谢谢。

1 个答案:

答案 0 :(得分:0)

您应该使用anchors而不是word boundaries,因为它是一个完整的字符串匹配。

preg_match_all("~^$skills$~i", $text, $matchWords);

空格是非单词字符,因此可以匹配。

https://3v4l.org/OYlfD