$text=" ma mee ma mee meena mia meenaùs";
$ text是一个包含数百个单词的字符串,上面是一个简短的插图。
我想要的是我想检查$ text是否包含' mee ',如果是,则用“”替换mee(即空格)。
我正在使用preg_replace
,但很明显,它会搜索模式mee
并将其替换为空格,即使$text
具有meena。
简而言之,我只想在$text
值不是meena时使用 PREG_REPLACE 或相关功能才能实现替换?
提前致谢
$text = preg_replace("mee","", $text);
预期产量:“ma ma meenamiameenaùs” 似乎有一些编码问题,因为它不适用于meenaùs
答案 0 :(得分:3)
作为正则表达式,^mee$
将与preg_replace
一起使用,如下所示:
$text = preg_replace("/^mee$/","", $text);
^
匹配字符串
的开头
$
匹配字符串
这是一个非常简单的替代方法,因此在不使用正则表达式的情况下更有效率。
好的,因为你已经改变了问题,新问题的答案将是:
$text = preg_replace("/\bmee\b/","", $text);
这应该匹配模式mee
,它是一个单词,而不是另一个单词的一部分。
答案 1 :(得分:2)
if ($text == "mee")
$text = " ";
就是这样。
如果您希望多次在包含此字词的字符串中更改单词"mee"
,请使用$text = preg_replace('/\bmee\b/', ' ', $text);
。
答案 2 :(得分:0)
您可以选择preg_match
和preg_replace
的组合。
首先检查字符串中是否存在完全匹配的文本:
<?php
$text=" ma mee ma mee meena mia";
echo $text."<br/>";
$key = "mee";
$rep_text = "YES";
$text = preg_replace("/\b".$key."\b/u", $rep_text, $text);
echo $text."<br/>";
?>
试试这个。