如何将字符串中的特定单词小写 php
How to lowercase a specific word in a string php
大家好!!
我需要你的帮助!
这里有 2 个元素:
$string = "Legend Of Zelda";
$array = array("to","of","at");
我想检查 $string 是否包含 $array 元素之一并将其小写。
试过了,但失败了……我觉得 preg_replace 的第一个元素应该是一个模式?
echo preg_replace($array, mb_strtolower($array), $string);
有什么想法吗?
非常感谢来自法国!
也许这可以帮到你:
$content = "Legend Of Zelda";
$array = array("to","of","at");
foreach($array as $value)
{
$pattern = '/'.$value.'/i';
$content = preg_replace($pattern, strtolower($value) , $content);
}
echo $content;
使用preg_replace_callback
:
$string = "Legend Of Zelda";
$array = array("to","of","at");
echo preg_replace_callback('~\b(?:' . implode("|", $array) . ')\b~ui', function ($m) {
return mb_strtolower($m[0]);
}, $string);
参见 PHP demo。
这里的正则表达式看起来像 \b(?:to|of|at)\b
,参见 its demo online。
/i
标志将确保不区分大小写的搜索,/u
将正确处理所有 Unicode 字符。
大家好!!
我需要你的帮助! 这里有 2 个元素:
$string = "Legend Of Zelda";
$array = array("to","of","at");
我想检查 $string 是否包含 $array 元素之一并将其小写。 试过了,但失败了……我觉得 preg_replace 的第一个元素应该是一个模式?
echo preg_replace($array, mb_strtolower($array), $string);
有什么想法吗? 非常感谢来自法国!
也许这可以帮到你:
$content = "Legend Of Zelda";
$array = array("to","of","at");
foreach($array as $value)
{
$pattern = '/'.$value.'/i';
$content = preg_replace($pattern, strtolower($value) , $content);
}
echo $content;
使用preg_replace_callback
:
$string = "Legend Of Zelda";
$array = array("to","of","at");
echo preg_replace_callback('~\b(?:' . implode("|", $array) . ')\b~ui', function ($m) {
return mb_strtolower($m[0]);
}, $string);
参见 PHP demo。
这里的正则表达式看起来像 \b(?:to|of|at)\b
,参见 its demo online。
/i
标志将确保不区分大小写的搜索,/u
将正确处理所有 Unicode 字符。