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;