ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
~~~ <?php /** * 把字符串拆分成数组 * @param $search 搜索关键字 * @return array */ function splitString(string $search):array { // 正则匹配,汉字按单字拆分,英文按单词拆分并且位数不少于2位,数字按连续性拆分并且位数不少于2位 preg_match_all('/([a-zA-Z]){2,}/', $search, $matchesWord); preg_match_all('/([\d]){2,}/', $search, $matchesNumber); preg_match_all("/[\x{4e00}-\x{9fa5}]/u", $search, $matchesCN); $originalArr = $newArr = []; if (!empty($matchesWord[0])) { $originalArr = array_merge($originalArr, $matchesWord[0]); } if (!empty($matchesNumber[0])) { $originalArr = array_merge($originalArr, $matchesNumber[0]); } if (!empty($matchesCN[0])) { $originalArr = array_merge($originalArr, $matchesCN[0]); } // 添加<font></font>标签 foreach ($originalArr as $value) { $newArr[] = sprintf("<font color='red'>%s</font>", $value); } return [$originalArr, $newArr]; } $keyWord = '客户合同账户登录不了 怎么处理'; $searchRequest = [ "这个客户售后搜索不到", "这个客户是做个人至尊服务被录成个人VIP?", "有什么办法更有效知道合同过期的学员?", "管理后台怎么查询合作到期的客户?", "麻烦查一下CRM这个客户登录账号", "这个客户 之前在商城老系统办过合同", "麻烦移动一下到我商城的老系统,我的账号是xx", "客户合同账户登录不了 怎么处理", ]; $resList = splitString($keyWord); // 正则子字符串替换, $replaceData = str_replace($resList[0], $resList[1], $searchRequest); echo "<pre>关键字:\n"; echo $keyWord . "\n\n"; echo "搜索结果:\n"; print_r($replaceData); ~~~