Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 搜索特定单词的字符串并替换它_Php_Regex_Search - Fatal编程技术网

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

Php 搜索特定单词的字符串并替换它,php,regex,search,Php,Regex,Search,我想我需要一个正则表达式 我有一个文本输入,用户可以在其中搜索我的网站。 他们可以在搜索短语之间使用单词“ELLER”,这在英语中等于“或” 但是,我的搜索引擎要求它使用英语,因此我需要用或替换查询字符串中的所有ELLER 我该怎么做 顺便说一句,这是php 谢谢 如果要替换特定单词,则不需要正则表达式,可以使用: 当您寻找的不是动态的时,使用PHP的字符串函数将比使用正则表达式更快 如果要确保仅当ELLER为完整单词匹配且不包含在另一个单词中时才替换它,则可以使用和锚定(\b): 还应注意,您

我想我需要一个正则表达式

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

但是,我的搜索引擎要求它使用英语,因此我需要用替换查询字符串中的所有ELLER

我该怎么做

顺便说一句,这是php

谢谢


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

当您寻找的不是动态的时,使用PHP的字符串函数将比使用正则表达式更快

如果要确保仅当
ELLER
为完整单词匹配且不包含在另一个单词中时才替换它,则可以使用和锚定(
\b
):


还应注意,您还可以通过str_替换要更改的值数组和要更改的值数组,例如:


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


str_replace(数组('item 1','item 2')、数组('1 item','2 item')、$string);

我同意,使用str\u替换。它比使用正则表达式快得多。这样做,但是使用字符串
“ELLER”
“或”
(注意空格)听从Segfault的建议,否则搜索“Helen Keller”或“Uri Geller”将不起作用expected@Segfault空格不是描述一个单词的唯一方式(其他可能是标点符号或字符串的开头或结尾)。没有正则表达式,您无法真正有效地只匹配完整的单词。
str_replace("ELLER", "OR", $string);
$string = str_replace("ELLER", "OR", $string);
$string = preg_replace('/\bELLER\b/', 'OR', $string);
<?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;