php - preg_match_all 与多个单词完全匹配
问题描述
我有一长串关键字,下面用$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
它不在关键字列表中。
谢谢。
解决方案
您应该使用anchors,而不是word boundary,所以它是一个完整的字符串匹配。
preg_match_all("~^$skills$~i", $text, $matchWords);
空格是非单词字符,因此它匹配。
推荐阅读
- c - 如何在不将级别作为参数传递给函数的情况下找到二叉树中节点的级别?
- python - 使用 for 循环创建新列并收到错误
- python - 他们将字符串转换为 DateTime(python)的最快速度是多少?
- python - Python中的盐密钥加密解密编码
- node.js - 安装 npm && dev 失败
- angular - ag-Grid:“更新 girdData/rowData 后如何保持列宽”?
- c# - C# SignalR 不显示新客户端的消息
- git - 如何解决 Git 桌面中的“工作目录中存在未解决的冲突”?
- java - 如何使用 JpaRepository 进行多字段过滤并保持分页
- button - 导航栏项目自动移动 SwiftUI