Preg_replace仅限精确字符串

时间:2014-10-24 09:37:53

标签: php regex

$string = "recruitment offer human resource IT for before of";
$string = str_replace(array('it', 'for', 'of'), '-', $string);

我想从字符串中删除一些不必要的字词(在此示例中 - 我想用it替换forof-但我不喜欢不希望别人的话受到影响(上面的例子也会影响单词recuITmentOFferbeFORe

结果:recruitment offer human resource - - before -

注意:我需要的解决方案不仅限于这些单词/ string。

2 个答案:

答案 0 :(得分:3)

preg_replace()\b一起使用,字边界断言:

$string = preg_replace( '#\b(it|for|of)\b#i', '-', $string);

答案 1 :(得分:1)

使用外观而不是字边界更好。因为\b(it|for|of)\bit字符串中的:it:匹配。我想这不是你想要的。

$string = preg_replace( '#(?<=\s|^)(?:it|for|of)(?=\s|$)#i', '-', $string);

DEMO