作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我可以像这样突出显示字符串中的一个词:
$str = "my bird is funny";
$keyword = "fun";
$str = preg_replace("/($keyword)/i","<b>$0</b>",$str);
Ant 这会给我:我的鸟很有趣纽约
但是当关键字来自多个单词时,如何使这项工作起作用,例如当
$keyword = "bird fun";
我想得到这个结果:我的鸟是有趣的nny
最佳答案
正则表达式最基本的概念之一是交替。 bird|fun
将匹配 bird
或 fun
。使用 implode
和 explode
可以很容易地生成这种交替:
$keywords = explode(' ', trim($keyword));
$str = preg_replace('/'.implode('|', $keywords).'/i', '<b>$0</b>', $str);
正如 pritaeas 指出的那样,您还可以使用 str_replace
:
$str = preg_replace('/'.str_replace(' ', '|', trim($keywords)).'/i', '<b>$0</b>', $str);
当然,如果您自己编写 $keyword
并且不在其他任何地方使用它,那么请立即将其编写为正则表达式:
$keyword = 'bird|fun';
甚至
$keyword = '/bird|fun/i';
这样你根本不需要任何爆炸或内爆。
关于php - 突出显示字符串中的多个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13451536/
有没有一种方法可以“标记”对象的属性,使它们在反射中“突出”? 例如: class A { int aa, b; string s1, s2; public int AA
我是一名优秀的程序员,十分优秀!