Preg_match_all 与多个单词完全匹配
Preg_match_all exact match with multiple words
我有一长串关键字,下面用变量 $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>";
}
Results: Shop Supervisor
如何获得 $text
的精确匹配?所以在这种情况下不应该有任何结果,因为 Machine Shop Supervisor
不在关键字列表中。
谢谢。
你应该使用anchors, not word boundaries,所以它是一个完整的字符串匹配。
preg_match_all("~^$skills$~i", $text, $matchWords);
一个space是一个非单词字符所以匹配。
我有一长串关键字,下面用变量 $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>";
}
Results: Shop Supervisor
如何获得 $text
的精确匹配?所以在这种情况下不应该有任何结果,因为 Machine Shop Supervisor
不在关键字列表中。
谢谢。
你应该使用anchors, not word boundaries,所以它是一个完整的字符串匹配。
preg_match_all("~^$skills$~i", $text, $matchWords);
一个space是一个非单词字符所以匹配。