特定单词后防止换行(php)

时间:2014-10-07 15:39:45

标签: php html regex

我有一个很长的文字,我想在特定关键词之后添加一个无包装。让我们说:' 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中执行此操作的任何提示?

1 个答案:

答案 0 :(得分:0)

Mr.thean字符串以及以下字词捕获到一个组中。

(\b(?:Mr\.|the|an)\h+\S+)

替换字符串:

<span class="no-wrap">$1</span>

DEMO

代码:

<?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> ...