首页 > 解决方案 > 我正在尝试在查询结果中搜索字符串以查找某些数字

问题描述

我的查询结果将是地址。它们将类似于:

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"]);

标签: phpmysql

解决方案


您没有匹配关键字和数字之间的空格。

$addr = preg_replace('/\b' . preg_quote($keyword) . '\s*\w+/i', '<b>$0</b>', $row['Address']);

\w*?关键字之前不需要。但是你应该匹配一个单词边界,\b这样它就不会APT在单词中间匹配。


推荐阅读