我有一个很长的文字,我想在特定关键词之后添加一个无包装。让我们说:' Mr。',''' an'唯一的问题是我不知道关键后会是什么词。 所以,如果我有一个类似的文字:
... there is an elephant in the room ...
脚本应将其更改为:
... there is <span class="no-wrap">an elephant</span> in <span class="no-wrap"> the room</span> ...
我知道它应该用某种正则表达式来完成,但我真的很糟糕。那么有关如何在php中执行此操作的任何提示?
答案 0 :(得分:0)
将Mr.
,the
,an
字符串以及以下字词捕获到一个组中。
(\b(?:Mr\.|the|an)\h+\S+)
替换字符串:
<span class="no-wrap">$1</span>
代码:
<?php
$string = "... there is an elephant in the room ...";
echo preg_replace('~(\b(?:Mr\.|the|an)\h+\S+)~', '<span class="no-wrap">$1</span>', $string)
?>
输出:
... there is <span class="no-wrap">an elephant</span> in <span class="no-wrap">the room</span> ...