使用正则表达式用匹配项替换搜索词组或搜索词的php代码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用正则表达式用匹配项替换搜索词组或搜索词的php代码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1452字,纯文字阅读大概需要3分钟。
内容图文
![使用正则表达式用匹配项替换搜索词组或搜索词的php代码](/upload/InfoBanner/zyjiaocheng/669/dc72eea4de424667b3388fc6622d8e62.jpg)
我需要基于“火与水”这样的短语来突出显示我的网站内容.我需要把< b>在完全存在的词组周围加上标签.并且,如果单词单独出现(不是完整形式),则应该得到< b>.标签.例如,如果内容为:
The world is made of three elements fire and water and air. Fire is hot and water is wet.
结果应为:
The world is made of three elements `<b>`fire and water`</b>` `<b>`and`</b>` air. `<b>`Fire`</b>` is hot `<b>`and`</b>` `<b>`water`</b>` is wet.
我尝试使用:
$output = preg_replace("/("fire and water)/i", '`<b>`$1`</b>`', $content);
$output = preg_replace("/(fire|and|water)/i", '`<b>`$1`</b>`', $ouput);
然而,这产生了额外的(并且是不想要的)< b>.当整个短语出现在内容中时会产生如下标记:
`<b><b>`fire`</b>` `<b>`and`</b>` `<b>`water`</b></b>`
我知道这与在屏幕上显示的内容没有什么不同
`<b>`fire and water`</b>`
但是,当搜索短语包含“ /”时,会引起很大的问题.正则表达式中必须有一种方法可以突出显示完整的短语和单个单词,而不能一次执行.
解决方法:
该解决方案可能比您想象的要简单得多:
$input = 'The world is made of three elements fire and water and air. Fire is hot and water is wet.';
$output = preg_replace("/(fire and water|fire|and|water)/i", '<b>$1</b>',$input);
echo $output;
输出为:
The world is made of three elements fire and water and
air. Fire is hot and water is wet.
来源看起来像这样:
The world is made of three elements <b>fire and water</b> <b>and</b> air. <b>Fire</b> is hot <b>and</b> <b>water</b> is wet.
元素将按其顺序进行处理.
另请参阅:Escaping a forward slash in a regular expression
内容总结
以上是互联网集市为您收集整理的使用正则表达式用匹配项替换搜索词组或搜索词的php代码全部内容,希望文章能够帮你解决使用正则表达式用匹配项替换搜索词组或搜索词的php代码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。