搜索特定单词的字符串并替换它

时间:2010-09-17 14:23:41

标签: php regex search

我认为这是我需要的正则表达式。

我有一个文本输入,用户可以在其中搜索我的网站。 他们可能会在搜索词组之间使用“ELLER”一词,其中英语等于“OR”。

我的搜索引擎需要英文版,所以我需要用 OR 替换查询字符串中的所有 ELLER

我该怎么做?

不过,这是php ...

由于

4 个答案:

答案 0 :(得分:6)

如果您想要替换特定单词,则不需要正则表达式,您可以使用str_replace代替:

$string = str_replace("ELLER", "OR", $string);

当您要查找的内容不是动态的时,使用PHP的字符串函数将比使用正则表达式更快。<​​/ p>

如果您希望确保ELLER仅在全字匹配时替换,而不包含在其他字词中,则可以使用preg_replaceword boundary锚点( \b):

$string = preg_replace('/\bELLER\b/', 'OR', $string);

答案 1 :(得分:5)

str_replace("ELLER", "OR", $string);

http://php.net/manual/de/function.str-replace.php

答案 2 :(得分:0)

还应注意,您还可以传递str_replace要更改的值数组,并将值数组更改为:

str_replace(array('item 1', 'item 2'), 'items', $string);

str_replace(array('item 1', 'item 2'), array('1 item', '2 item'), $string);

答案 3 :(得分:0)

<?php
// data
$name = "Daniel";
$order = 132456;

// String to be searched
$string = "Hi [name], thank you for the order [order_id]. The order is for [name]";

// replace rules - replace [name] with $name(Danile) AND [order_id] with $order(123456)
$text_to_send = str_replace(array('[name]', '[order_id]'), array($name, $order), $string);

// print the result
echo $text_to_send;

“嗨,达米埃尔,谢谢您的订单123456。该订单是给丹尼尔的。”