php - 我正在尝试在查询结果中搜索字符串以查找某些数字
问题描述
我的查询结果将是地址。它们将类似于:
123 琼斯博士 APT 1212
有些人不会有 APT #,因为它是家庭或企业。
对于那些有公寓号码的人,我想将地址的APT 1212部分加粗。一些公寓号码可能是 3、4 甚至 5 位数字。有些可能包含字母,例如 APT C22。
谁能帮我做到这一点?我在这里研究过并想出了这个,但它只加粗了APT。
if (strrchr($row["Address"], "APT") == true) {
$keyword = "APT";
$addr = preg_replace("/\w*?".preg_quote($keyword)."\w*/i", "<b>$0</b>", $row["Address"]);
解决方案
您没有匹配关键字和数字之间的空格。
$addr = preg_replace('/\b' . preg_quote($keyword) . '\s*\w+/i', '<b>$0</b>', $row['Address']);
\w*?
关键字之前不需要。但是你应该匹配一个单词边界,\b
这样它就不会APT
在单词中间匹配。
推荐阅读
- url - 使用标准 LUA API 获取 URL
- json - 使用 Json.NET 序列化对象时出现意外结果
- mysql - 如何修复mysql中的查询
- wordpress - 将 Slider Revolution 更新到最新版本 6.0.6 后出错 :: ReferenceError: setREVStartSize is not defined
- javascript - 如何在 Vue.js 中删除 FullCalendar-4 事件
- c# - 我在统一复制门时遇到问题
- javascript - 创建一个算法来定义 Javascript 中字符串的匹配概率
- c# - 如何最好地在 ASP.NET Core 中实现 Google 社交登录身份验证?
- visual-studio-app-center - Appcenter 通知管理(查看/隐藏某些用户的功能)
- html - CSS过滤器亮度:它可以分别应用于一个元素的边框和主体吗?