php - 来自 mySql 邻近搜索的 PHP 字符串突出显示
问题描述
我想突出显示此查询找到的文本部分:
例 1:
SELECT * FROM myTable WHERE columnA regexp 'work.{0,10}john.{0,10}smith'
亮点:“过去 5 年我一直在为 John Joe Smith 工作”
例 2:
SELECT * FROM myTable WHERE columnA regexp 'jo.{0,10}ba.{0,10}tur'
亮点:“过去 5 年我一直在为Joseph Balsora Turgeon工作”
我需要在字符串中找到突出显示的起始位置,我可以找出结束没有问题。
即使经过一些研究,我也没有任何线索。
谢谢,安迪
解决方案
只需在 php.ini 中应用相同的正则表达式。例如:
<?php
$str = "I have been working for John Joe Smith for the last 5 years";
// Assuming you get the $str from the database
$highlighted = preg_replace('/work.{0,10}john.{0,10}smith/iu', '<b>\0</b>', $str);
print $highlighted;
// I have been <b>working for John Joe Smith</b> for the last 5 years
请注意,您需要将正则表达式包含在一对符号中(如上例中的/
... /
)。最后还有修饰符。i
允许执行不区分大小写的匹配,u
允许使用 Unicode 字符串/
UPD
也可能您可以直接在 MySQL 中执行相同的替换:
select REGEXP_REPLACE('I have been working for John Joe Smith for the last 5 years','work.{0,10}john.{0,10}smith','<b>\\0</b>') ...
推荐阅读
- powershell - Visual Studio Code 中的 Powershell 和 2 因素身份验证
- wordpress - 在内容之前插入 Wordpress 短代码
- angular - 如何在Angular的ts文件中使用自定义模式弹出窗口而不是使用确认对话框
- php - WooCommerce:如何在两个客户之间共享订单?
- c# - 如何使用 Visual Studio 的“即时窗口”调用外部汇编方法?
- git - Git 接受来自 Pull Request 的所有更改
- html - 如何在 md-tooltip 中编译/添加 HTML
- python - 循环遍历 2 个 Pandas 数据帧并将行值传递给计算距离的函数
- php - 如何在 php 中创建动态 url 和类似 wordpress 的内容?
- c# - Unity编辑器内部编译器无缘无故抛出Unhandled Exception